需要多个输入的Java IF语句

时间:2014-01-12 21:20:26

标签: java if-statement

所以我正在为java编写一个四函数计算器(是的,我知道我在浪费时间,我只是在使用/进入java。)它需要前两个输入fina并添加/减去/等他们,并输出作为答案,我在答案后加上一个while循环,这样用户就可以输入更多他想要的数字。

while(finalanswer == 0){
        System.out.println("If finished, type 'done'.");
        System.out.println("To change your operation, type 'change'. Otherwise, enter your next number.");
        if(calc.next().equals("done")){
            finalanswer = 1; break;
        }else if(calc.next().equals("change")){
            System.out.println("'addition', 'subtraction', 'division', or 'multiplication'?");
            userOperation = calc.next();
        }else{
        modanswer = calc.nextDouble();
        if(userOperation.equals("addition")){
            System.out.println(answer += modanswer);
        }else if(userOperation.equals("subtraction")){
            System.out.println(answer -= modanswer);
        }else if(userOperation.equals("division")){
            System.out.println(answer /= modanswer);
        }else{System.out.println(answer *= modanswer);}
    }
    }

这是允许用户根据需要添加更多输入的循环,但是当我尝试添加一个数字时,我必须首先键入两个其他数字(这对我看到的没有影响)然后最后输入第三个数字并添加到原始答案中。

2 个答案:

答案 0 :(得分:0)

像Pshemo所说,在检查不同的条件之前,你必须存储calc.next()

String tmp = calc.next();

if(tmp.equals("done")){
      finalanswer = 1; break;
}else if(tmp.equals("change")){
      System.out.println("'addition', 'subtraction', 'division', or 'multiplication'?");
      userOperation = calc.next();
}else{
.
.
.

答案 1 :(得分:0)

正如Pshemo简要解释的那样,calc.next()函数要求用户输入内容,并返回输入。在此代码中,calc.next()在while循环的每个循环中被调用三次。如果第一个输入没有“完成”,则继续。如果第二个输入不是“更改”,则继续,第三个输入(通过calc.nextDouble()获得)被分配给modanswer

您需要将calc.next()的值存储为单独的变量,以避免必须三次读取输入:

while(finalanswer == 0){
    System.out.println("If finished, type 'done'.");
    System.out.println("To change your operation, type 'change'. Otherwise, enter your next number.");
    String input = calc.next();
    if(input.equals("done")){
        finalanswer = 1; break;
    }else if(input.equals("change")){
        System.out.println("'addition', 'subtraction', 'division', or 'multiplication'?");
        userOperation = calc.next();
    }else{
    modanswer = Integer.parseInt(input);
...

请注意,您需要使用Integer.parsInt()将通过calc.next()获得的字符串转换为整数。