【发布时间】:2016-10-26 19:46:36
【问题描述】:
这可能是一个非常简单的错误,但我是 Java(以及一般编程)的初学者,我很好奇为什么 break 语句在我的程序中不起作用。
public class ValidateStudentNumber
{
public static void main(String[] args)
{
Scanner kb = new Scanner(System.in);
do{
System.out.println("Enter a number: ");
String number = kb.next();
boolean valid = true;
for (int i = 0; i < number.length(); i++){
char c = number.charAt(i);
if(! Character.isDigit(c)) {
valid = false;
break;
}
if ( number.length() != 7) {
valid = false;
}
}
if (valid){
System.out.println("Valid");
}
else{
System.out.println("Invalid");
}
}
while (kb.hasNext());
System.out.println ("Program ending due to end-of-file");
}
}
我想用这段代码完成的是,只要输入一个字母,for 语句就会中断并显示“无效”,但是当我运行程序并输入非数字的内容时,它不会离开 for 循环,让我可以像往常一样继续输入。
感谢您的宝贵时间。
【问题讨论】:
-
为什么需要不断地检查循环内的
number.length?如果输入的长度不正确,则每次检查循环内部长度的长度是没有意义的/重复的。如果长度不正确,则检查其他任何内容都没有意义——即使只有数字也是完全错误的。