簡體   English   中英

Java While循環未執行

[英]Java While Loop Not Executing

我試圖構建一個簡單的程序,但程序的第一部分將無法正常工作。

有人可以檢查我的代碼並告訴我為什么while循環不會執行並生成適當的隨機數嗎?

先感謝您。

如果我了解您的代碼和問題,您想要的是

int choice = 1;
int length = 8;
StringBuilder sb = new StringBuilder();

Random rand = new Random();
if(choice == 1) {
    //Lowercase Letters
    for(int i = 0; i < length; i++) {
        // from 'a' to ('z' - 'a')
        int randNumLower = 'a' + rand.nextInt('z'-'a');
        sb.append((char) randNumLower);
    }
}
System.out.println(sb.toString());

在這里輸出隨機小寫字母的字符串。

您可能是這個意思:

while ((num < 97) || (num > 122)) {
    num = randNumList.nextInt(122)+1;
}

三個長度為5的輸出:

ordfg
idlxw
ugznu

您的情況應為|| (或)不是&& (和)。 randNumLower不能同時小於97 大於122,它必須是一個或另一個(或介於兩者之間)。

要使用令人困惑的否定,您需要:

(!(num >= 97) || !(num <= 122))

就我而言,這很難閱讀。

更好的是,跳過所有這些,並使用正確的范圍:

num = randNumList.nextInt('z' - 'a') + 'a';

請注意,使用顯式StringBuilder進行優化並不是嚴格必要的,因為在必要時將在幕后使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM