我的java程序只按顺序执行操作
我的程序中有以下代码:我的java程序只按顺序执行操作,java,loops,if-statement,for-loop,Java,Loops,If Statement,For Loop,我的程序中有以下代码: public static void remove(int studentID) { for (int i = 0; i < students.length; i++) { if (roster.get(i).getStudentID()==studentID) { System.out.println("Student with Student
public static void remove(int studentID)
{
for (int i = 0; i < students.length; i++)
{
if (roster.get(i).getStudentID()==studentID)
{
System.out.println("Student with Student ID of: " + studentID + " has been removed!");
roster.remove(i);
return;
}
else
{
System.out.println("Student with Student ID of: " + studentID + " could not be found! No action taken! ");
return;
}
}
}
publicstaticvoidremove(int-studentID)
{
for(int i=0;i
一切似乎都编译得很好,但当我执行花名册.remove时,我只能从数组列表中顺序删除一个ID。我的数组中有5个列表,如果我从1到5运行remove方法,它就会工作。然而,如果我从一个数字开始,比如说2,我的循环就找不到ID并且失败了
作为Java的新手,我知道这可能是一个简单的问题,我只是需要帮助。我的头撞在键盘上对这个问题没有任何价值
非常感谢您的帮助 从else块中删除return语句。从else子句中删除return语句。它使i++成为死代码。我希望,这就是你想要做的
public static void remove(int studentID)
{
for (int i = 0; i < students.length; i++)
{
if (roster.get(i).getStudentID()==studentID)
{
System.out.println("Student with Student ID of: " + studentID + " has been removed!");
roster.remove(i);
return;
}
}
System.out.println("Student with Student ID of: " + studentID + " could not be found! No action taken! ");
}
publicstaticvoidremove(int-studentID)
{
for(int i=0;i
谢谢,我真不敢相信我错过了退货!嗯,现在我觉得自己像个真正的傻瓜
如果有人对我的代码的结果感到好奇,我使用花名册.size()作为我的计数。我还删除了整个else语句,并将“notfound”println放在for循环的外部,将中断保留在if语句中
感谢你们所有人的快速和非常有用的回答 这可能不是问题所在,但为什么您要检查循环中的
学生。长度,但从名册中删除?您正在迭代学生
,但在名册中查找和删除
-这是有意的吗?我们真的需要知道这些类型是什么。为什么在if-else
语句的每个部分都有两个return
语句?这意味着迭代将在1步后中断。请避免删除内部循环,并使用集合或数组长度进行迭代以避免越界异常