這是我做的第一個項目,我知道有很多錯誤。我試圖用嵌套的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'只接受'布爾型'表達式。那麼問題是「爲什麼不= =沒有按預期的那樣?」,其中有很多現有的教程/書籍/參考:) – user2864740