java验证只检查一次 案例1: System.out.println(“请创建一个图书ID:”); 字符串newID=sc.next(); for(int i=0;i
//这是我在程序中使用的开关的一小部分代码。我正在尝试实现验证,似乎遇到了一些问题。我试图允许用户向arrayList添加一本新书,如果输入已经存在,我的程序将生成一个验证检查。代码可以工作,但只有一次。我知道这可能是我需要的一个循环,但我仍在学习如何使用它们 你在混合责任。for循环尝试检测已经存在的图书id,如果验证失败,则向用户请求一个新id 您需要两个循环:java验证只检查一次 案例1: System.out.println(“请创建一个图书ID:”); 字符串newID=sc.next(); for(int i=0;i,java,validation,Java,Validation,//这是我在程序中使用的开关的一小部分代码。我正在尝试实现验证,似乎遇到了一些问题。我试图允许用户向arrayList添加一本新书,如果输入已经存在,我的程序将生成一个验证检查。代码可以工作,但只有一次。我知道这可能是我需要的一个循环,但我仍在学习如何使用它们 你在混合责任。for循环尝试检测已经存在的图书id,如果验证失败,则向用户请求一个新id 您需要两个循环: 一个外部循环,向用户请求一个新的id,如果输入了有效的id则终止 用于检查输入id有效性的内部循环 您能否在问题中加入一个小的跑
- 一个外部循环,向用户请求一个新的id,如果输入了有效的id则终止
- 用于检查输入id有效性的内部循环
newID=sc.next()
,在另一个地方有sc.next()
。有什么可疑的地方吗?我将“sc.next()”更改为“newID=sc.next()”,但不幸的是它没有修复它。在执行此代码之前,您应该将迭代器重置为集合的第一个元素。此外,您可能需要将I
重置为0
以重新开始检查。
case 1:
System.out.println("Please create a Book ID: ");
String newID = sc.next();
for (int i = 0; i < myBooks.size(); i++) {
if (myBooks.get(i).getBookID().contains(newID)) {
System.out.println("This BookID already exists. Please enter a different bookID");
sc.next();
}
}