首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java扫描器需要多个输入

Java扫描器需要多个输入
EN

Stack Overflow用户
提问于 2015-01-22 09:16:52
回答 2查看 764关注 0票数 2

我想问一个关于我的代码的问题。

我对它的低效率和混乱表示歉意,我仍然在努力学习java。

代码语言:javascript
运行
复制
    System.out.println("Please choose the number corresponding to the operation: ");
    System.out.println("1 for add,2 for subtract,3 for multiply, 4 for divide, 5 for print, and 6 for exit: ");

    if (sc.nextInt() == 5) {
        System.out.println("Your first fraction is: " + num1 + "/" + denom1 + " or in decimal: " + ((float) num1 / denom1));
        System.out.println("Your second fraction is: " + num2 + "/" + denom2 + " or in decimal: " + ((float) num2 / denom2));
    } else if (sc.nextInt() == 3) {
        System.out.println("Multiply: " + (num1 * num2) + "/" + (denom1 * denom2));

    } else if (sc.nextInt() == 4) {
        System.out.println("Divide: " + (num1 * denom2) + "/" + (denom1 * num1));

    } else if (sc.nextInt() == 1) {
        int d = denom1 * denom2;
        int n1 = num1 * denom2;
        int n2 = num2 * denom1;
        System.out.println("Addition: " + (n1 + n2) + "/" + d);


    } else if (sc.nextInt() == 2) {
        int d = denom1 * denom2;
        int n1 = num1 * denom2;
        int n2 = num2 * denom1;
        System.out.println("Subtract: " + (n1 - n2) + "/" + d);
    }
    else if (sc.nextInt() == 6 ) {
        System.exit(0);
    }
}
}

当我运行程序时,第一个if语句很好,因为我只需要输入一次数字5。但是,正如您从第二个if语句中看到的,即数字3需要两个输入,我必须在下一行出现之前输入它两次。第三个if语句是数字4,在下一行出现之前需要3个输入,依此类推,每个后续if语句都需要3个输入。对不起,如果我没有正确地解释这件事,有人知道为什么会发生这种事吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-22 09:20:40

将代码更改为:

代码语言:javascript
运行
复制
int input = sc.nextInt();
sc.nextLine();
if (input == 5) {

还有其他所有的if (sc.nextInt()...)

nextInt将消耗您的输入。因此,如果进入第二个if,输入就会被第一个if消耗掉。

nextLine对于在int值之后使用<ENTER>是必不可少的。

票数 3
EN

Stack Overflow用户

发布于 2015-01-22 10:28:56

代码语言:javascript
运行
复制
         Try to use switch statement.
    package practice;
    import java.util.Scanner;
    public class Stack{
    public static void main(String[] args) {
    Scanner sc=new Scanner(System.in);  
    System.out.println("ENTER THE 2 NUMBERS");
    int num1=sc.nextInt();
    int num2=sc.nextInt();
    System.out.println("ENTER THE CHOICE");
    int choice='0';
    while(choice!=6)
    {
         choice=sc.nextInt();
        System.out.println(choice);
    switch(choice)
    {
    case 1:
         int add=num1+num2;
        System.out.println("Addition:"+add);
        break;
    case 2:
          System.out.println("Subtract:");
        break;
    case 3:
          System.out.println("Multiply:");
        break;
    case 4:
        System.out.println("Divide:");
        break;
    case 5:
         System.out.println("Your first fraction is:");
         System.out.println("Your second fraction is:");
        break;
    case 6:
        System.exit(0);
        break;
    default:
        System.out.println("LOSER");
        break;
           }
                            }       
    sc.close();
                }
     }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28084965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档