第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在java計算器中驗證用戶輸入的問題

在java計算器中驗證用戶輸入的問題

楊魅力 2024-01-28 16:56:49
因此,我正在用 Java 編寫計算器代碼作為家庭作業(yè),我想在最后包含一個 else 語句,如果用戶沒有輸入有效的運算符,則會收到錯誤消息。問題是,即使我輸入有效的運算符,它也會打印結(jié)果,然后打印 else 錯誤消息。任何幫助,將不勝感激。public class Main {    public static void main(String[] args){        Scanner inputi=new Scanner(System.in);        double num1,num2;        char operator;        System.out.println("Please enter the first number: ");        num1=inputi.nextDouble();        System.out.println("Please enter the second number: ");        num2=inputi.nextDouble();        Scanner oper=new Scanner(System.in);        System.out.println("Please enter the operator, the operators are +,-,*,/,%");        operator = oper.next().charAt(0);        if(operator== '+') {             System.out.println("The sum of these numbers is: "+(num1+num2));        }        if(operator=='-') {            System.out.println("The diff of these numbers is: "+ (num1-num2));               }        if(operator=='*') {            System.out.println("The result of this multiplication is: "+(num1*num2));        }        if(operator=='/') {            System.out.println("The division is: "+(num1/num2));        }        if(operator=='%') {            System.out.println("The module is: "+(num1%num2));            }                     else {            System.out.println("Please just pick an operator..");        }   }}
查看完整描述

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..");

    }


查看完整回答
反對 回復 2024-01-28
?
一只斗牛犬

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ù)機器指令編譯成什么。


查看完整回答
反對 回復 2024-01-28
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

你有“if if if if else”你想要“if else if else if else”。您的else當前僅適用于if (operator == '%')



查看完整回答
反對 回復 2024-01-28
?
紫衣仙女

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..");

}


查看完整回答
反對 回復 2024-01-28
  • 4 回答
  • 0 關(guān)注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號