首页 > 解决方案 > 如何使用 if else 语句检查用户是否输入了与数组列表索引相关的有效条目?

问题描述

我试图创建一个修改方法,允许用户查看他们之前输入的条目并能够重新输入该条目从而替换该条目。但是,当我尝试编写 if else 语句来检查他们的输入是否是有效索引时,程序声称无论您输入什么都不正确。请指教。

public static void Modify() 
{

readelements(); 

System.out.println("Enter the desired # of the entry you would like to modify"); 

int Mod = Cons.nextInt(); 


if (Mod != Notes.size())
{
System.out.println("You've selected an invalid entry!\n");
}
else {

System.out.println(Notes.get(Mod));
Notes.remove(Mod); 
System.out.println("Please copy and paste your entry for re-entry");
String NewMod = Cons.next(); 
Notes.add(Mod, NewMod); 

}

Execute.Instruct();

}

标签: java

解决方案


当你有一个n-大小的数组时,有效的索引是0..n-1. 同样适用于列表。

例如,如果您的列表有 4 个元素,则有效索引为 0、1、2 和 3。

您的输入验证条件应变为

if (Mod < 0 || Mod >= Notes.size()) {
  // complain
} else {
  // index is good
}

推荐阅读