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

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

如何將布爾值 true 或 false 分配給字符串“打開”和“關閉”

如何將布爾值 true 或 false 分配給字符串“打開”和“關閉”

陪伴而非守候 2021-11-24 14:52:10
所以我有這個代碼,但我無法弄清楚以下內容:為什么輸出停止在 99?我知道我設置了 boolean[100] 并將其更改為 101 但這不起作用。如何讓輸出打印“Locker x 已打開”或“Locker x 已關閉”?我知道我必須以某種方式分配布爾值true來打開和false關閉。請幫忙謝謝!代碼public class lockerPuzzle{    public static void main(String[] args){        boolean[] lockers = new boolean[100];        for(int i = 1; i < lockers.length; i++){            for (int j = i; j < lockers.length; j+=i){                if (lockers[j] == false){                    lockers[j] = true;                }                else{                    lockers[j] = false;                }            }        }        for(int i = 1; i <lockers.length; i++){            System.out.println(lockers[i] + " " + i);        }    }}
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

為什么輸出停止在 99?

您從索引 1 開始,而您應該從索引 0 開始。

區別

1-99 (99 元素)

0-99(100 個元素)

代碼

public static void main(String[] args){

    boolean[] lockers = new boolean[100];

    for(int i = 0; i < lockers.length; i++){

        for (int j = i; j < lockers.length; j+=i){

            if (lockers[j] == false){

                lockers[j] = true;

            }

            else{

                lockers[j] = false;

            }

        }

    }

    for(int i = 0; i <lockers.length; i++){

        System.out.println(lockers[i] + " " + i);

    }

}

如何獲得打印 Locker x is open 或 closed 的輸出?

您可以檢查布爾值的真值并根據其值打印一些文本:


public class lockerPuzzle{


    public static void main(String[] args){


        // ...


        for(int i = 0; i < lockers.length; i++){

            boolean isOpened = lockers[i]


            if (isOpened) {

                System.out.println("Locker " + i + " is opened!");

            } else {

                System.out.println("Locker " + i + " is closed!");

            }

        }

    }

}

注意:這可以使用更多變量或三元運算符更簡潔,但這對新程序員有用。祝你好運。


查看完整回答
反對 回復 2021-11-24
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

您從 1 開始索引,這將跳過數組中的第一項。我已經簡化了你的代碼,這里是代碼,你真的不需要那些 if 語句


public static void main(String[] args){

    boolean[] lockers = new boolean[100];

    for(int i = 0; i < lockers.length; i++){

        for (int j = i; j < lockers.length; j+=i){

            lockers[j] = !lockers[j];

        }

    }

    for(int i = 1; i <lockers.length; i++){

        System.out.println(lockers[i] + " " + i);

    }

}


查看完整回答
反對 回復 2021-11-24
  • 2 回答
  • 0 關注
  • 247 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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