有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java输入和If语句

我试图创建一个命令/控制台计算器程序,但我被操作符的if语句卡住了

我知道这不是创建计算器程序的最简单(甚至不是正确的)方法,但我这样做是为了练习用户输出、输入、If语句和计算

我在想,对于运算符变量,它应该是char类型,但如果这样做,我就无法获得用户输入。以下代码有什么问题

package calculator;
import static java.lang.System.in ;
import java.util.Scanner;

public class Calculator {


 public static void main(String[] args) {

     Scanner in = new Scanner(System.in);

 System.out.println ("Welcome to the calculator!");
 System.out.print ("Enter a calculation: ");

 int a;
 int b;
 String Op; //Operator


 a = in.nextInt();
 b = in.nextInt();
 Op = in.next();

 if (Op == '*') { a*b ;}
 if (Op =='/') { a/b ;} 
 if (Op == '+') {a+b;} 
 if (Op == '-') {a-b;} 



}

}

我还没有完成它(正如你所看到的,没有任何输出),但这是因为我无法让if语句工作

我得到的错误是:

 error: not a statement
 if (Op == '-') {a-b;} 

这适用于每个if语句


共 (3) 个答案

  1. # 1 楼答案

    你需要考虑的事情很少:

    1. Op是字符串,因此需要使用.equals("op").equalsIgnoreCase("op")方法进行比较
    2. 由于需要使用;来终止语句,所以a-b不是您需要执行的语句,就像我在下面的代码中使用的那样
    3. 最后你要检查'*'的单个代码使用char

    您可以看到以下带有格式化语言的代码

    public class Calculator {
    
    public static void main(String[] args) {
    
        Scanner in = new Scanner(System.in);
    
        System.out.println("Welcome to the calculator!");
    
        int a;
        int b;
        String Op; //Operator
        int c = 0;
    
        System.out.println("Enter First Value :");
        a = in.nextInt();
        System.out.println("Enter Second Value :");
        b = in.nextInt();
        System.out.println("Enter Operator :");
        Op = in.next();
    
        if (Op.equals("*")) {
            c = a * b;
        } else if (Op.equals("/")) {
            c = a / b;
        } else if (Op.equals("+")) {
            c = a + b;
        } else if (Op.equals("-")) {
            c = a - b;
        }
    
        System.out.println("Output is " + c);
    
    }
    }
    
  2. # 2 楼答案

    你正在比较Stringchar所以

    '-'更改为"-"(对其他运算符也一样),并将其与Op.equals("-")进行比较

    大约error: not a statement

    将结果分配给一个变量,如
    result = a-b

  3. # 3 楼答案

    您应该通过以下方式执行字符串比较:

    if(op.equals("*")
    

    因为,您正在对字符串使用==运算符,因此会出现此错误