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
}
}
添加回答
举报