1.在JAVA中如何跳出当前的多重嵌套循环
在java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的的break语句,即可跳出
外层循环。例如:
ok:
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
system.out.println("i="+i+",j="+j);
if(j==5)break ok;
}
}
另外,我个人觉得通常不使用标号这种方式,而是让外层的循环条件表达式的结果可以收到里层循环体代码的控制,例如,要在二维数组中查
找到某个数字。
int arr[][]={{1,2,2},{2,2,5},{4,4}};
boolean found =false;
for(int i=0;i<arr.length&&!found;i++)
{
for(int j=0;j<arr[i].length;j++)
{
system.out.println("i="+i+",j="+j);
if(arr[i][j]==5)
{
found=true;
break;
}
}
}
2.break和continue的区别?
break是结束整个循环体,continue是结束单次循环(跳出当前循环,到下一步)。
例子1:
while(x++ < 10)
{
if(x == 3)
{
break;
}
printf("%d\r\n", x);
}
结果是输出 1 2 就退出了整个while循环
但是如果使用continue
while(x++ < 10)
{
if(x == 3)
{
continue;
}
printf("%d\r\n", x);
}
结果是:1 2 4 5 6 7 8 9 10 可见他仅仅是不输出3,因为他结束了本次循环
例子2:
for (i=0;i<10;i++)
{
if (i==6) continue;/*如果i==6则不再执行下面的if语句,而是直接进行下一轮循环*/
if (i==7) break;/*如果i==7,则不再执行剩余的循环,直接退出for循环去执行下面的printf();*/
}
printf("break");
3.return和 break区别
break语句虽然可以独立使用,但通常主要用于switch语句中,控制程序的执行流程转移。 在switch语句中,其作用是强制退出switch结构,执行switch结构之后的语句。其本质就是在 单层循环结构体系中,其作用是强制退出循环结构。 return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。 因此,将它分类为跳转语句.有两个作用,一个是返回方法指定类型的值(这个值总是确定的); 一个是结束方法的执行(仅仅一个return语句)。 return 语句可以使其从当前方法中退出,返回到 调用该方法的语句处,继续程序的执行 。 这里做个测试,比较在循环之中break和return的区别,switch语句和return返回调用方法,想必大家都比较熟12345678910111213141516 | public class Loop { public static void main(String[] args) { for ( int i= 0 ;i< 3 ;i++){ for ( int j= 0 ;j< 3 ;j++){ System.out.println( "测试i=" +i+ " 测试j=" +j); // if (i== 2 ) break ; //测试break System.out.println( "j" +j+ "循环结束。。。" ); } } System.out.println( "i循环结束。。。" ); } } |
4.这里顺便提一下Exit()函数 和return 区别 exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
return():返回函数,若在主函数中,则会退出函数并返回一值。
详细说:
1. return返回函数值,是关键字; exit 是一个函数。
2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示结束一个进程。
3. return是函数的退出(返回);exit是进程的退出。
4. return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。
5. return用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出, 非0 为非正常退出。
6. 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。