【发布时间】:2016-06-16 06:37:59
【问题描述】:
这是我做的第一个项目,所以我知道有很多错误。我正在尝试使用嵌套的 if else 语句创建一个计算器。我得到的唯一错误是在我得到的 if 语句中我不能从 char 转到 boolean。我不知道为什么它认为我正在尝试更改为布尔值,但我猜测“= A”等可能使它认为?任何建议将不胜感激。
public static void main(String[] args) { //main class
char result = 0; //define and declare variables
double firstNumber = 0;
double secondNumber = 0;
double answer = 0;
System.out.println("Calculator Program\n"); //Text for user
System.out.println("Choose how to proceed:\n");
System.out.println("A. Add\n");
System.out.println("B. Subtract\n");
System.out.println("C. Multiply\n");
System.out.println("D. Divide\n");
Scanner userInput = new Scanner(System.in); //create new Scanner
result = userInput.next().charAt(0); //Take only the first letter entered
if (result = A){
System.out.println("Please enter the first number: ");
firstNumber = userInput.nextDouble(); //redefine first number
userInput.next(); //clears line
System.out.println("Please enter the second number: ");
secondNumber = userInput.nextDouble(); //redefine second number
userInput.next(); //clears line
answer = firstNumber + secondNumber; //algorithim
System.out.println("Answer: " + firstNumber + " + " + secondNumber + " = " + answer);//print answer
}
else if ( result = B){
System.out.println("Please enter the first number: ");
firstNumber = userInput.nextDouble(); //redefine first number
userInput.next(); //clears line
System.out.println("Please enter the second number: ");
secondNumber = userInput.nextDouble(); //redefine second number
userInput.next(); //clears line
answer = firstNumber - secondNumber; //algorithim
System.out.println("Answer: " + firstNumber + " - " + secondNumber + " = " + answer);//print answer
}
else if ( result = C){
System.out.println("Please enter the first number: ");
firstNumber = userInput.nextDouble(); //redefine first number
userInput.next(); //clears line
System.out.println("Please enter the second number: ");
secondNumber = userInput.nextDouble(); //redefine second number
userInput.next(); //clears line
answer = firstNumber * secondNumber; //algorithim
System.out.println("Answer: " + firstNumber + " * " + secondNumber + " = " + answer);//print answer
}
else if ( result = D){
System.out.println("Please enter the first number: ");
firstNumber = userInput.nextDouble(); //redefine first number
userInput.next(); //clears line
System.out.println("Please enter the second number: ");
secondNumber = userInput.nextDouble(); //redefine second number
userInput.next(); //clears line
answer = firstNumber / secondNumber; //algorithim
System.out.println("Answer: " + firstNumber + " / " + secondNumber + " = " + answer);//print answer
}
}
}
【问题讨论】:
-
赋值与相等。 (
=vs.==)字符文字用单引号括起来('A')。 -
正确:赋值表达式的类型是赋值给的变量的类型。所以表达式
aChar = '?'被键入为char,但if只接受boolean类型的表达式。那么问题是“为什么 = 没有像预期的那样?”,有很多现有的教程/书籍/参考资料 :)