用java打破for循环的另一种方法?
有没有其他方法可以不使用实际的break语句来中断此循环? 因为某种原因,我的教授不喜欢我们在开关中的任何其他位置使用break 我在将对象添加到数组中下一个空空间的对象数组中的方法中遇到问题 这是我的代码:(还有其他方法吗?)用java打破for循环的另一种方法?,java,Java,有没有其他方法可以不使用实际的break语句来中断此循环? 因为某种原因,我的教授不喜欢我们在开关中的任何其他位置使用break 我在将对象添加到数组中下一个空空间的对象数组中的方法中遇到问题 这是我的代码:(还有其他方法吗?) public void add(Employee employeeObj)抛出ArrayIndexOutOfBoundsException{ 试一试{ 对于(inti=0;i您可以简单地执行i=MAX或使用布尔标志,如果您没有这样一个简单的情况 作为个人注意事项,禁止使
public void add(Employee employeeObj)抛出ArrayIndexOutOfBoundsException{
试一试{
对于(inti=0;i您可以简单地执行i=MAX
或使用布尔标志,如果您没有这样一个简单的情况
作为个人注意事项,禁止使用break
外部switch
语句没有任何意义。您可以简单地执行i=MAX
或使用布尔标志,如果您没有这样的小情况
作为个人提示,禁止使用break
外部switch
语句没有任何意义。尝试以下方法:
for(int i= 0; i<MAX; i++){
if(listEmployee[i] == null){
listEmployee[i] = employeeObj;
i=MAX;
}
for(inti=0;i试试这个:
for(int i= 0; i<MAX; i++){
if(listEmployee[i] == null){
listEmployee[i] = employeeObj;
i=MAX;
}
for(int i=0;i由于您的方法在本例中不做任何其他操作,因此可以使用return
而不是break
:
public void add(Employee employeeObj)throws ArrayIndexOutOfBoundsException {
try{
for (int i= 0; i<MAX; i++) {
if (listEmployee[i] == null) {
listEmployee[i] = employeeObj;
return;
}
}
} catch(ArrayIndexOutOfBoundsException e) {
throw new ArrayIndexOutOfBoundsException("ERROR!");
}
}
public void add(Employee employeeObj)抛出ArrayIndexOutOfBoundsException{
试一试{
对于(int i=0;i,由于您的方法在本例中不做任何其他操作,因此可以使用return
而不是break
:
public void add(Employee employeeObj)throws ArrayIndexOutOfBoundsException {
try{
for (int i= 0; i<MAX; i++) {
if (listEmployee[i] == null) {
listEmployee[i] = employeeObj;
return;
}
}
} catch(ArrayIndexOutOfBoundsException e) {
throw new ArrayIndexOutOfBoundsException("ERROR!");
}
}
public void add(Employee employeeObj)抛出ArrayIndexOutOfBoundsException{
试一试{
对于(int i=0;i
我在将对象添加到数组中下一个空空间的对象数组中的方法中遇到问题
我建议只需找出数组的长度并将对象插入下一个位置,无需迭代数组的完整长度
public void add(Employee employeeObj){
int n = listEmployee.length;
listEmployee[n] = employeeObj;
}
}
我在将对象添加到数组中下一个空空间的对象数组中的方法中遇到问题
我建议只需找出数组的长度并将对象插入下一个位置,无需迭代数组的完整长度
public void add(Employee employeeObj){
int n = listEmployee.length;
listEmployee[n] = employeeObj;
}
}
或者,你也可以这样做
int i = Arrays.asList(listEmployee).indexOf(null);
if (i >= 0) {
listEmployee[i] = employeeObj;
}
请注意,Arrays.asList会在数组上创建一个视图,而不是一个新列表。或者,您也可以按
int i = Arrays.asList(listEmployee).indexOf(null);
if (i >= 0) {
listEmployee[i] = employeeObj;
}
请注意,Arrays.asList会在数组上创建一个视图,而不是一个新的列表设置i=MAX;
,但老实说,在这种情况下,使用break肯定是一个更好的选择。如果函数没有其他事情要做,您也可以返回。在这里捕获期望值似乎没有用,上面的代码永远不会引发异常。是否有任何w我仍然可以使用ArrayIndexOutOfBoundsException异常usefullSettingi=MAX;
将起作用,但老实说,在这种情况下,使用break绝对是一个更好的选择。如果函数没有其他事情要做,您也可以返回。在这里捕获expection似乎没有用,上面的代码永远不会引发异常。是否存在任何异常我仍然可以使用ArrayIndexOutOfBoundsException异常的方式usefull@PradeepSimha,太好了?这只是为了解决可读性恶化的问题。@PradeepSimha,太好了?这只是为了解决可读性恶化的问题。关于你的个人笔记,我的教授发现,如果他让我们使用break,就会导致一些学生试图打破fr使用if语句,并使事情更容易(不确定是谁),他完全禁止。只是想了解一下,这背后的真正原因是什么?我对java非常陌生,我看不出原因!限制语言的表达能力以避免学习其语义是毫无意义的。即使你试图突破if语句的外部,你也只会得到一个编译器错误。如果你的if在开关/fo中r/然后你会有奇怪的行为,但想当然地认为,每个学生在犯同样的错误10次并花时间纠正之后,都会学习。关于你的个人笔记,我的教授发现,如果他让我们使用break,会导致一些学生试图打破if语句,让事情变得更容易(不确定是谁),他完全禁止。只是想了解一下,这背后的真正原因是什么?我对java非常陌生,我看不出原因!限制语言的表达能力以避免学习其语义是毫无意义的。即使你试图突破if语句的外部,你也只会得到一个编译器错误。如果你的if在开关/fo中r/然后你会有奇怪的行为,但想当然地认为,每个学生在犯同样的错误10次并花时间纠正之后,都会学习。