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

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

說明if塊嵌套

說明if塊嵌套

翻翻過去那場雪 2022-12-28 10:54:16
這是關(guān)于一些家庭作業(yè),我試圖設定一個 10 到 40 的范圍。代碼將接受該范圍內(nèi)的兩個輸入。然后該方法將檢查兩個數(shù)字是否在范圍內(nèi),如果在范圍內(nèi),它會給我兩個數(shù)字的乘積,如果不在范圍內(nèi),它會向我顯示一條消息。我已經(jīng)為此工作了很長時間,但我無法讓它工作我是一個完整的初學者。public class testing{    public static int computeProduct(int first , int second)     {     int max = 40;        int min = 10;        int total = first * second;        if (min <= first) {            if (first <= max) {                if (min <= second) {                    if (second <= max) {                        total = first * second;                    } else {                        System.out.println("Number is not in range, please try again");                    }                }            }        }        return total;    }    public static void main(String[] args)    {        Scanner scanner = new Scanner(System.in);        System.out.println("Enter a number between 10 to 40:");        int x = scanner.nextInt();        System.out.println("Enter another number between 10 to 40:");        int y = scanner.nextInt();        int total = computeProduct(x, y);        System.out.print("Product of x and y = " + total);    }}預期結(jié)果是告訴我數(shù)字是否不在范圍內(nèi),但目前沒有這樣做。它給了我兩個數(shù)字的乘積,不管它是否在范圍內(nèi)。
查看完整描述

3 回答

?
牛魔王的故事

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

這里:

int total = first * second;

接著是if, 然后是:

return total;

意思是:每次當你的if計算結(jié)果為時false,你的方法只返回你最初分配的值!

你可以做什么:有一個else打印錯誤消息的塊。或者拋出異常。

但理想情況下,您應該在這里分離關(guān)注點。意義:

  • 寫一個類似的方法boolean inRange(int first, int second)。該方法返回trueor false,具體取決于第一個/第二個符合您的條件

  • 如果該方法返回 true,則調(diào)用compute(),否則打印您的消息

換句話說:你的compute()方法可能根本不應該有那個 if 塊。讓該方法計算結(jié)果,并讓另一個方法告訴您是否要調(diào)用compute()。


查看完整回答
反對 回復 2022-12-28
?
米脂

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

從 s 構(gòu)建的“梯子”if表現(xiàn)為邏輯and關(guān)系。第一個if在條件適用時通過,然后第二個if在前一個條件和它自己的條件都適用時通過,依此類推。

然而,對于檢查是否有問題,違反任何(甚至一個)規(guī)則就足夠了,這是一種邏輯or關(guān)系。


雖然這不是最好的編碼風格,但您可以通過翻轉(zhuǎn)比較和拆解階梯來機械地將該結(jié)構(gòu)重寫成這樣:


public static int computeProduct(int first , int second) 

{

    int max = 40;

    int min = 10;


    if (first < min) {

        System.out.println("Number is not in range, please try again");

        return 0;

    }

    if (first > max) {

        System.out.println("Number is not in range, please try again");

        return 0;

    }

    if (second < min) {

        System.out.println("Number is not in range, please try again");

        return 0;

    }

    if (second > max) {

        System.out.println("Number is not in range, please try again");

        return 0;

    }


    return first*second;

}

0如果輸入無效,此方法顯示消息并返回,如果一切正常則返回產(chǎn)品。


然后它可以成為一個實際的 logical ,在 Javaor中表示為:||


public static int computeProduct(int first , int second) 

{

    int max = 40;

    int min = 10;


    if (first < min

          || first > max

          || second < min

          || second > max) {

        System.out.println("Number is not in range, please try again");

        return 0;

    }


    return first*second;

}

現(xiàn)在想想,你原來的條件也沒有問題,只是結(jié)果要翻轉(zhuǎn):當代碼到達最里面的塊時,一切都很好,所以這是你可以的地方return first*second;。如果有任何if失敗,您需要消息和return 0;:


public static int computeProduct(int first , int second) 

{

    int max = 40;

    int min = 10;


    if (min <= first) {

        if (first <= max) {

            if (min <= second) {

                if (second <= max) {

                    return first*second;

                }

            }

        }

    }

    System.out.println("Number is not in range, please try again");

    return 0;

}

現(xiàn)在我不太確定這是否有幫助......


查看完整回答
反對 回復 2022-12-28
?
繁星coding

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

給你:


public static int computeProduct(int first , int second) 

        {     int max = 40;

            int min = 10;

            if(first<=min || second<=min ||first>=max||second>=max)

            {

               System.out.println("Number is not in range, please try again");

               return 0; //or return whatever you like

             }

            return first *second ;


        }



    public static void main(String[] args)

        {

            Scanner scanner = new Scanner(System.in);

            System.out.println("Enter a number between 10 to 40:");

            int x = scanner.nextInt();

            System.out.println("Enter another number between 10 to 40:");

            int y = scanner.nextInt();


            int total = computeProduct(x, y);

            if(total!=0){

            System.out.print("Product of x and y = " + total);

             }

     else {

      System.out.print("cannot compute as numbers are not in range");

    }

}


查看完整回答
反對 回復 2022-12-28
  • 3 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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