【发布时间】:2023-01-13 16:22:01
【问题描述】:
当尝试为字符串获取第二个输入时,我的程序崩溃了。 错误如下:
线程“main”中的异常 java.util.NoSuchElementException 在 java.base/java.util.Scanner.throwFor(Scanner.java:937) 在 java.base/java.util.Scanner.next(Scanner.java:1478) 在计算.main(calculate.java:20)`
我的代码也是,如下:
import java.util.Scanner; public class calculate { // W.I.P. public static void main(String[] args) { // intro System.out.println("Console Calculator by dotzSimplicity - Java Edition."); System.out.println("Possible Operators: +, -, *, /, %"); // num1 System.out.println("Enter your first number: "); Scanner input1 = new Scanner(System.in); int num1 = input1.nextInt(); System.out.println(num1); input1.close(); // operator System.out.println("Enter your operator: "); Scanner input2 = new Scanner(System.in); String operator = input2.next(); System.out.println(num1 + operator); input2.close(); // num2 System.out.println("Enter your second number: "); Scanner input3 = new Scanner(System.in); int num2 = input3.nextInt(); System.out.println(num1 + operator + num2); input3.close(); // calculation if (operator == "+") { System.out.println(num1 + num2); } else if (operator == "-") { System.out.println(num1 - num2); } else if (operator == "*") { System.out.println(num1 * num2); } else if (operator == "/") { System.out.println(num1 / num2); } else if (operator == "%") { System.out.println(num1 % num2); } else { System.out.println("Invalid Operator, please try again."); System.exit(0); } }; }我只是试图将字符串输入到运算符变量中,但我遇到了崩溃。
【问题讨论】:
-
您正在为单个流创建多个扫描仪 - 只需使用单身的
Scanner的实例来读取所有输入。不过在那之后,由于将字符串与==进行比较,您会遇到问题 - 请参阅 stackoverflow.com/questions/513832