java - 如何使用 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();
}
解决方案
当你有一个n-
大小的数组时,有效的索引是0..n-1
. 同样适用于列表。
例如,如果您的列表有 4 个元素,则有效索引为 0、1、2 和 3。
您的输入验证条件应变为
if (Mod < 0 || Mod >= Notes.size()) {
// complain
} else {
// index is good
}
推荐阅读
- apache-spark - 尝试为 TransformedDStream 中的每个项目(列表)应用函数时出错
- python - 从函数创建年份列表
- mysql - mysql 如何将行结果转换为具有新列名的列?
- .net - 使用 ReactiveUI 与 PasswordBox 进行两种方式绑定
- matlab - 如何将单元格数组的元素从 double 转换为 char?
- rust - 如果在 Rust 中使用异步,你总是需要一个异步 fn main() 吗?
- python - 分叉/拆分数字以降低粒度熊猫 | 整数四舍五入
- python - 使用 pandas 向其他行添加相同的值
- scala - Circe:将隐式编码器移动到泛型类中
- java - 如何根据特定条件过滤飞镖中的流?