[英]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.