4 回答

TA貢獻1829條經(jīng)驗 獲得超4個贊
我建議使用 switch 代替:
switch (operator) {
case '+':
System.out.println("+");
break;
case '-':
System.out.println("-");
break;
/* Other operators */
default:
System.out.println("Please just pick an operator..");
}

TA貢獻1784條經(jīng)驗 獲得超2個贊
這里的問題是您沒有完全理解 if else-if else 語句。
“If”的意思是:如果這個條件語句為真,則執(zhí)行括號中的代碼。
“If-else”的意思是:如果上面的語句(if 和 else-if)不成立,則執(zhí)行此代碼。
“else”的意思是:如果上面的語句(if 或 else-if)不成立,則執(zhí)行此代碼。
鑒于此,我確信您看不到您的錯誤。您所有的“if”語句都會評估是否滿足此條件,然后執(zhí)行此操作。然而您確實想要使用“else-if”,如果這是真的,則僅執(zhí)行以下代碼,而排除其余條件。您讓 else 子句選擇默認值是正確的,但是由于您沒有使用“else-if”,因此它實際上會編譯為 if 該語句不正確( else 子句之前的語句):
if(operator=='%') { System.out.println("The module is: "+(num1%num2)); }
然后執(zhí)行else語句,這不是你想要的。
我建議您真正弄清楚您的代碼實際上根據(jù)機器指令編譯成什么。

TA貢獻1841條經(jīng)驗 獲得超3個贊
你有“if if if if else”你想要“if else if else if else”。您的else
當前僅適用于if (operator == '%')

TA貢獻1839條經(jīng)驗 獲得超15個贊
嘗試“否則如果”:
if(operator== '+') {
System.out.println("The sum of these numbers is: "+(num1+num2));
}
else if(operator=='-') {
System.out.println("The diff of these numbers is: "+ (num1-num2));
}
else if(operator=='*') {
System.out.println("The result of this multiplication is: "+(num1*num2));
}
else if(operator=='/') {
System.out.println("The division is: "+(num1/num2));
}
else if(operator=='%') {
System.out.println("The module is: "+(num1%num2));
}
else {
System.out.println("Please just pick an operator..");
然而, switch 語句會更清晰:
switch(operator) {
case '%':
System.out.println("The module is: "+(num1%num2));
break;
default:
System.out.println("Please just pick an operator..");
}
添加回答
舉報