4 回答

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

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

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
嘗試“否則如果”:
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 語(yǔ)句會(huì)更清晰:
switch(operator) {
case '%':
System.out.println("The module is: "+(num1%num2));
break;
default:
System.out.println("Please just pick an operator..");
}
添加回答
舉報(bào)