【发布时间】:2014-11-09 20:45:07
【问题描述】:
我正在为学校做一项作业,要求我们找出十个数字中最大的一个。数字在 0-9 之间。我相信我把那部分记下来了。我的问题是我正在尝试添加作业不需要的额外功能。在布尔语句为假并给出错误消息后,我试图让循环完全重新启动。在我输入无效值后,它会给出错误消息,但在我按“确定”后,它会继续到下一个数字。我希望它在循环的开头重新开始。
代码如下:
package Largest;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class LargestMain {
public static void main(String[] args) {
int number = 0;
String numStr = "";
int []myArray = new int[10];
int count = 1;
int largest = 0;
boolean valid = false;
while(valid == true); { // Loop to check validity
for(int i = 0; i < myArray.length; i++) {
myArray[i] = i + 1;
numStr = JOptionPane.showInputDialog("Please enter number " + count++ + ":");
number = Integer.parseInt(numStr); // Converts string value to integer
if(number >= largest) {
largest = number;
}
// If-Else if statements checks if values entered are equal to 0-9
if(number >= 0 && number <= 9) {
valid = true;
}
else if ((!(number >= 0 && number <= 9))) {
valid = false;
}
if (valid == false) {
JOptionPane.showMessageDialog(null, "INVALID INPUT...Try Again!!!", "Results", JOptionPane.YES_OPTION);
continue;
}
}
JOptionPane.showMessageDialog(null, "The Largest Number Is: " + largest, "Results", JOptionPane.PLAIN_MESSAGE);
}
}
}
我可以通过添加 return 来结束循环:
if (valid == false) {
JOptionPane.showMessageDialog(null, "INVALID INPUT...Try Again!!!", "Results", JOptionPane.YES_OPTION);
return;
}
我真的很想学习如何从头开始重新启动循环。我尝试搜索不同的主题,但没有一个能帮助我解决我的问题。提前感谢您的帮助!
【问题讨论】:
-
continue关键字? -
在包裹你的内心时添加另一个
-
@August 将其作为答案发布。 @KinGSwisser
while(valid == true)可以表示为while(valid)。检查布尔值何时为 false 如下所示:while(!valid)
标签: java if-statement for-loop while-loop boolean-expression