4 回答

TA貢獻1848條經驗 獲得超10個贊
嘗試以可讀的方式提供您的代碼,以便我們能夠給出有效的答案(英文)。當您的輸入為 0 時,您的循環應該結束,但現在您的代碼要求您輸入數字,直到您輸入除 0 之外的任何內容。
要更正代碼,請將 while 表達式更改為 != 0。此外,您還需要在循環內(而不是循環外)詢問用戶一個新數字。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner invoer = new Scanner(System.in);
final int STOP_TEKEN = 0;
int nummer = 0;
do {
System.out.print("Geef een getal: ");
nummer = invoer.nextInt();
}
while (nummer != STOP_TEKEN);
}
}

TA貢獻1817條經驗 獲得超14個贊
認真學習?。?!對于您的情況,可能會出現兩種情況。
首先,如果您的輸入不是0,則System.out.print()只會運行一次。因為,實際上do-while,里面的語句do將運行一次,之后條件將不匹配,因為數字不等于0,并且循環將中斷。
其次,如果你的輸入是0,則會導致無限循環,因為 while 內部的條件始終滿足。
解決方案:
您需要在每次迭代中減小 的值nummer。另外,將您的條件更改為而!=不是==。嘗試這樣:
public static void main(String[] args) {
Scanner invoer = new Scanner(System.in);
final int STOP_TEKEN = 0;
int nummer = invoer.nextInt();
do {
System.out.print("Geef een getal: ");
nummer--;
}
while (nummer != STOP_TEKEN);
}

TA貢獻1856條經驗 獲得超11個贊
嘗試在循環內的 print 語句之后為 nummer 變量分配值。像這樣:
int nummer;
do {
System.out.print("Geef een getal: ");
nummer = invoer.nextInt();
}while (nummer == STOP_TEKEN);

TA貢獻1828條經驗 獲得超4個贊
public class WhileLoopNumbers {
public static void main(String[] args) {
Scanner invoer = new Scanner(System.in);
final int STOP_TEKEN = 0;
int nummer = invoer.nextInt();
do {
System.out.print("Geef een getal: ");
// Assign stdin value to some variable
nummer = invoer.nextInt();
} while (nummer != STOP_TEKEN);// check the stdin value with your exit condition
}
}
添加回答
舉報