使用java解决数学表达式

时间:2015-10-11 18:29:38

标签: java eclipse math

我希望能够让用户选择他/她想要做的事情,然后在代码结尾处添加,减去,除法或乘以用户响应。我该怎么做呢?使用if语句,它不能将字符串userinput转换为boolean

import java.util.Scanner;

public class HelloWorld {

    public static void main(String[] args) {


        Scanner kboard = new Scanner(System.in);
        System.out.print("Would you like to addition subtract divide or multiply? ");
        String userinput = kboard.nextLine();

        System.out.print("enter the first number ");
        String firstnumber = kboard.nextLine();
        String s1 = firstnumber;
        int n1 = Integer.parseInt(s1);
        System.out.print("enter the second number ");
        String secondnumber = kboard.nextLine();
        String s2 = secondnumber;
        int n2 = Integer.parseInt(s2);
        if (userinput) {

        }
    }
}

3 个答案:

答案 0 :(得分:1)

您需要使用switch。 (你也可以在参数中使用String)

伪代码:

switch(userinput) {
case "multiply"   : //multiply code here
      break;
case "subtraction": //subtraction code here
      break; 
... //and so on
default: // executes when user puts in wrong input
      break;
}

在每个案例之后使用break很重要,否则所有案例都将以自上而下的方式执行。

你的项目中还有很多无用的代码。你可以减少这个:

   String firstnumber = kboard.nextLine();
   String s1 = firstnumber;
   int n1 = Integer.parseInt(s1);

对此:

int n1 = Integer.parseInt(kboard.nextLine());

答案 1 :(得分:0)

问题在于你的if陈述,你所做的是不合逻辑的。

但是,要比较Strings中的Java,您必须使用以下规定的格式:

if(userinput.equals("texttocompare"))
//or
if(userinput.equals(variabletocompare)

答案 2 :(得分:0)

添加:

    if (userinput.equalsIgnoreCase("multiply")) {
        answer = n1 * n2;
        System.out.println(answer);
    } else if (userinput.equalsIgnoreCase("divide")) {

    answer = n1 / n2;
    System.out.println(answer);

    }