亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

布爾示例返回意外答案

布爾示例返回意外答案

呼啦一陣風 2021-08-13 16:58:16
我正在通過indiabix 上給出的 Java 測試,有一個布爾問題類似于 -public class If2 {    static boolean b1, b2;    public static void main(String [] args)     {        int x = 0;        if ( !b1 ) /* Line 7 */        {            if ( !b2 ) /* Line 9 */            {                b1 = true;                x++;                if ( 5 > 6 )                 {                    x++;                }                if ( !b1 ) /* Line 17 */                    x = x + 10;                else if ( b2 = true ) /* Line 19 */                    x = x + 100;                else if ( b1 | b2 ) /* Line 21 */                    x = x + 1000;            }        }        System.out.println(x);    }}現在解釋說 - 作為實例變量,b1 和 b2 被初始化為 false。第 7 行和第 9 行的 if 測試成功,因此 b1 設置為 true 并且 x 遞增。下一個 if 測試成功在第 19 行(請注意,代碼不是測試 b2 是否為真,而是將 b2 設置為真)。由于第 19 行成功,后續的 else-if(第 21 行)將被跳過。因此,答案是 101 而不是 111。但是為什么if ( !b1 )第 17 行會被忽略。是否if ( !b1 )僅將第 7 行上的內容視為真實,而if ( !b1 )忽略了第 17 行上的稍后出現。我的理解是答案應該是 111 而不是 101。
查看完整描述

3 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

這工作正常,請檢查您的 if 條件組合?。。?/p>


public class If2 {

    static boolean b1, b2;


    public static void main(String[] args) {

        int x = 0;

        if (!b1) /* Line 7 */

        {

            System.out.println("1"+b1);

            if (!b2) /* Line 9 */

            {   System.out.println("2"+b2);

                b1 = true;

                System.out.println("2.1 b1 is"+b1);

                x++;

                if (5 > 6) {

                    x++;

                }

                System.out.println("3"+b1);

                System.out.println("4"+b2);

                if (!b1) /* Line 17 */  //Vipul:- as    b1 is true this will not invoke         

                x = x + 10;             

                else if (b2 = true) /* Line 19 */ //Vipul:- as  b2 is true this will  invoke    

                    x = x + 100;

                else if (b1 | b2) /* Line 21 */

                    x = x + 1000;

                System.out.println("X"+x);

            }

        }

        System.out.println(x);

    }

}


查看完整回答
反對 回復 2021-08-13
  • 3 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號