gpt4 book ai didi

Java:为什么我的break语句不起作用?

转载 作者:行者123 更新时间:2023-12-02 03:16:07 24 4
gpt4 key购买 nike

这可能是一个非常简单的错误,但我是 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 循环并允许我像往常一样继续输入。

感谢您的宝贵时间。

最佳答案

Break 语句工作正常。因为它破坏了 for 循环的执行,而不是 for do-while 循环的执行。如果要中断 do-while 循环,请在无效的 case else block 中添加break语句。

public class A
{
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");
break;
}
}
while (kb.hasNext());
System.out.println ("Program ending due to end-of-file");
}
}

关于Java:为什么我的break语句不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40270954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com