我想知道爲什麼一個循環工作,而另一個循環雖然他們非常相似。Java - while循環表達式
dmCyl
循環我想循環直到輸入正整數。這是不起作用的循環。但是,hgtCyl
循環會循環,直到用戶輸入一個int爲止。看起來好像(dmCyl < 0)
循環完全被忽略了。這是爲什麼?
另外,工作的循環是否會將hgtCyl = scnr.nextInt();
放在或其外部。它的位置會改變什麼嗎?
謝謝!
編輯: 設置第一個while while while循環解決了這個問題。
再次感謝!
解決方案:
dmCyl = scnr.nextInt();
do{
System.out.print("please insert positive int");
dmCyl = scnr.nextInt();
}while (dmCyl < 0);
原始代碼:
int dmCyl = 0;
int hgtCyl = 0;
Scanner scnr = new Scanner(System.in);
while (dmCyl < 0) {
System.out.print("Please enter an integer");
scnr.next();
}
dmCyl = scnr.nextInt();
這工作循環:
while (!scnr.hasNextInt()){
System.out.print("Please enter an integer");
scnr.next();
}
hgtCyl = scnr.nextInt();
作爲一個規則,0永遠不會小於0.所以你的第一個循環立即退出。 – shmosel
或進入循環時dmCyl的值是什麼(並且首次測試dmCyl <0') –
'(dmCyl <0)'是'0 <0',它總是爲false。 –