【发布时间】:2016-12-21 15:37:58
【问题描述】:
我想限制 while 循环。
我不想用break;,而是说循环必须在3次后结束。
我的while循环:
while(!file.isFile()) { userInput = JOptionPane.showInputDialog("UserInput);
【问题讨论】:
标签: java loops while-loop restriction
我想限制 while 循环。
我不想用break;,而是说循环必须在3次后结束。
我的while循环:
while(!file.isFile()) { userInput = JOptionPane.showInputDialog("UserInput);
【问题讨论】:
标签: java loops while-loop restriction
int i = 0;
while(!file.isFile() && i < 3) {
userInput = JOptionPane.showInputDialog("UserInput);
i++;
}
我同意 for 循环是更好的选择 :)
【讨论】:
改用 for 循环:
for (int i = 0; i < 3 && !file.isFile(); i++) {
userInput = JOptionPane.showInputDialog("UserInput");
...
}
【讨论】:
int i = 3;
while(!file.isFile() && i>0) {
userInput = JOptionPane.showInputDialog("UserInput");
i--;
}
【讨论】:
然后你需要让你的 while 循环成为一个类似 for 循环的东西:
int counter = 0;
while (counter < 3 && !file.isFile()) { ...
counter++;
郑重声明:您展示的代码实际上并没有什么用处:您正在“覆盖”您从用户那里获得的输入;并且:您是条件 !file.isFile() ...不会更改它的值 ...因为没有代码可以做到这一点。换句话说:除了你循环的方式之外,你的代码还有更多需要修复的地方。向用户询问三遍同样的事情似乎很奇怪;忽略他前两次所说的话。
【讨论】:
int count = 0;
while(!file.isFile() && count < 3 ) {
count++;
}
【讨论】:
int counter = 0;
while(!file.isFile() && counter < 3) {
userInput = JOptionPane.showInputDialog("UserInput);
counter++;
}
将3 替换为您希望循环限制的迭代次数。
【讨论】:
考虑重构为for 循环,在紧凑的范围内引入一个计数器变量:
for (int i = 0; i < 3 && !file.isFile(), ++i){
userInput = JOptionPane.showInputDialog("UserInput"/*ToDo - quotation inserted*/);
}
for 循环条件检查 i < 3 && !file.isFile() 在循环体中的语句运行之前验证。
【讨论】: