我正在尝试使用用户输入的第一个数字和第二个数字在Java中创建简单的计算器,然后使用while循环以用户喜欢的方式进行计算 但是当我写例如 a 而不是两个数字求和时,它就中断了循环! 为什么?
package com.myproject.CalcEngine2;
import java.util.Scanner; // import the Scanner class
public class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
System.out.println("Enter fisr number");
double val1 = myObj.nextDouble();
System.out.println("Enter fisr number");
double val2 = myObj.nextDouble();
double result = 0.0d;
String addition = "a";
System.out.println("Enter what you want to do");
String opCode = myObj.next();
while(opCode.equals("E")) {
if (opCode.equals(addition))
result = val1 + val2;
else if (opCode.equals("s"))
result = val1 - val2;
else if (opCode.equals("d"))
result = val1 / val2;
else if (opCode.equals("m"))
result = val1 * val2;
System.out.println(result);
System.out.println("Enter what you want to do"+"E for exit , a for addition , s for subtraction , d for Division , m for multiplication ");
opCode = myObj.next();
}
}
}
程序显示我写的每个字符都是错误的,但是我不明白为什么!?
答案 0 :(得分:3)
也许是因为while循环将终止,但“ E”除外?
while(opCode.equals("E")) {
仅在它为“ E”时运行,但我想你的意思是
while(!opCode.equals("E")) {
答案 1 :(得分:0)
请输入
while(!opCode.equals("E"))
希望这对您有帮助!
谢谢。
答案 2 :(得分:0)
您输入的条件,
while(opCode.equals("E")){
}
在这种情况下不正确。在输入E
之前,不会在while循环内的块上执行它。
所以,那么您的其他条件都不满足。
添加
while(!opCode.equals("E")){
}
该代码将为您提供帮助。 谢谢!
答案 3 :(得分:0)
请检查while循环中的条件,如果输入的输入不是'E',则终止。
要使其正常工作,请进行以下更改:
while(!opCode.equals("E")) {
// Operation code
}
顺便说一句,要更清楚地了解操作,您可以打印如下:
System.out.println("Enter what you want to do, 'a': for addition, 's': for subtraction, 'd': for division, 'm': for multiplication ");
答案 4 :(得分:0)
感谢所有 这是您最终的代码,他们将在以后删除大小写敏感的情况下进行搜索!
package com.myprogram.CalcEngine;
import java.util.Scanner; // import the Scanner class
public class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
System.out.println("Enter fisr number");
double val1 = myObj.nextDouble();
System.out.println("Enter fisr number");
double val2 = myObj.nextDouble();
double result = 0.0d;
String addition = "a";
System.out.println("Enter what you want to do");
String opCode = myObj.next().toLowerCase();
while(!opCode.equals("e")) {
if (opCode.equals(addition)){
result = val1 + val2;
System.out.println(result);}
else if (opCode.equals("s")){
result = val1 - val2;
System.out.println(result);}
else if (opCode.equals("d")){
result = val1 / val2;
System.out.println(result);}
else if (opCode.equals("m")){
result = val1 * val2;
System.out.println(result);}
else
System.out.println("Error please enter true character: ");
System.out.println("Enter what you want to do"+"E for exit , a for addition , s for subtraction , d for Division , m for multiplication ");
opCode = myObj.next();
}
System.out.println("Good bye! See you :) ");
}
}
有变化
String opCode = myObj.next();
到
String opCode = myObj.next().toLowerCase();
第15行中的改变
opCode = myObj.next();
到
opCode = myObj.next().toLowerCase();
第32行
所有输入均为小写。 一切顺利。