Java:虽然即使条件为假,循环仍然运行
我在编程和Java中相当新,但我希望我能弄清楚这一点。我有一个做while循环,里面,我有一个while语句,如果不正确的值输入扫描仪。但是,当我运行代码时,它总是运行一次while命令,而不管它是不正确还是正确,然后正确运行代码。Java:虽然即使条件为假,循环仍然运行
import java.util.Scanner;
public class Practice {
public static void main (String [] args) {
int x = 0;
int i = 0;
int n = 0;
String S1 = "";
Scanner user = new Scanner(System.in);
do
{
System.out.println("Enter an integer between 1 and 15: ");
x = user.nextInt();
while (x < 1 || x > 15);
{
System.out.println("Incorrect integer. Must be between 1 and 15. Try again: ");
x = user.nextInt();
}
n = 1;
}
while (n != 1);
for (i = 1; i <= x; i++)
{
S1 = S1 + "X";
}
for (n = 1; n <= x; n++)
{
System.out.println(S1);
}
}
}
非常感谢你提前。
从while循环
筛选删除多余的;
:
while (x < 1 || x > 15){
System.out.println("Incorrect integer. Must be between 1 and 15. Try again: ");
x = user.nextInt();
}
仅限第一个。第二个终止一个'do/while',那里的分号是正确的。 – EJP
@turnipdabeets非常感谢,我非常感谢。在每行结束后添加分号时遇到问题。这工作完美! –
@GavinWebb没问题,很高兴我能帮忙! – Turnipdabeets
而(X < 1 || X> 15); 半冒号将终止逻辑,并且控制将始终传递到下一行。当你编码时要小心:D
- 在这段时间内删除多余的分号。
- 也关闭扫描仪对象(用户)。
检查更新的代码。
public class Practice {
public static void main(String[] args) {
int x = 0;
int i = 0;
int n = 0;
String S1 = "";
Scanner user = new Scanner(System.in);
do {
System.out.println("Enter an integer between 1 and 15: ");
x = user.nextInt();
while (x < 1 || x > 15)
{
System.out.println("Incorrect integer. Must be between 1 and 15. Try again: ");
x = user.nextInt();
}
n = 1;
} while (n != 1);
for (i = 1; i <= x; i++) {
S1 = S1 + "X";
}
for (n = 1; n <= x; n++) {
System.out.println(S1);
}
user.close();
}
}
remove;从最后的陈述,而 – Satya
@Satya只从第一个。第二个终止一个'do/while',那里的分号是正确的。 – EJP
@EJP,你是对的先生:)。抱歉的错误。 – Satya