java中break与continue关键字的使用

/*
break 与 continue 关键字的使用
break 可以用在循环结构与条件判断结构中 ,在循环中的作用是结束当前整个循环。
continue 只能用在循环结构中 ,在循环中的作用是结束当次循环。
break 与 continue后不能再声明执行语句,因为没有可能执行,编译也不会通过
说明:使用标签可以指定结束某层的循环,提前在循环结构语句前定义一个标签 例如flag: for

return关键字的作用,不是用于结束循环的,而是结束一个方法。当一个方法执行到return语句时
这个方法被结束。与break和continue不同,return直接结束整个方法,不管这个return处于多少层循环内。

*/

import java.util.*;
class BreakContinueTest {
	public static void main(String[] args) {
         Scanner scan = new Scanner(System.in);

		for (int i = 1; i <= 100;i++ ){
			if (i % 11 == 0){
             break;
			}else{
			System.out.println(i);	
			}
		}                                   //输出1 2 3 4 5 6 7 8 9 10

		for (int i = 1; i <= 100;i++ ){
			if (i % 11 == 0){
             continue;
			 //System.out.println(i); 不能在此处加语句,否则编译不通过
			}else{
			System.out.println(i);	
			}
		}                                  //除了11的倍数输出1-100


     //*********************break 与continue在嵌套循环中的使用*******************

        for (int i = 1;i <= 10 ;i++ ){
			for (int j = 1;j <= 10 ;j++ ){
				if (j == 5){
				 break;  //在嵌套循环内,break默认跳出包裹此关键字的最近一层循环
				}else{
				System.out.print(j + " ");	
				}		
			}
            System.out.println();
			}

	   label: for (int i = 1;i <= 10 ;i++ ){ // lable: for 相当于给for指定一个标签,可以用其他名字命名
			for (int j = 1;j <= 10 ;j++ ){
				if (j == 5){
				 break label;  //结束指定标识的循环结构
				}else{
				System.out.print(j + " ");	
				}		
			}
            System.out.println();


        }

		  for (int i = 1;i <= 10 ;i++ ){
			for (int j = 1;j <= 10 ;j++ ){
				if (j == 5){
				 continue;  //在嵌套循环内,continue默认跳出包裹此关键字的最近一层循环的本次执行
				}else{
				System.out.print(j + " ");	
				}		
			}
            System.out.println("\n");
        }
       
	     label1: for (int i = 1;i <= 10 ;i++ ){ // lable: for 相当于给for指定一个标签,可以用其他名字命名
			for (int j = 1;j <= 10 ;j++ ){
				if (j == 5){
				 continue label1;  //结束指定标识的循环结构的本次执行
				}else{
				System.out.print(j + " ");	
				}		
			}
            System.out.println();
        }

       //使用带标签的continue可以对求素数的方法做修改
       System.out.println("\n");
       System.out.println("请输入p值");
	   int p = scan.nextInt();
	        long start = System.currentTimeMillis();//获取当前时间距离1970年1月1日0时0分0秒距离现在的毫秒数,类型为long
	  flag: for (int i = 3;i <= p ;i +=2 ){  //遍历3到p范围内的奇数,提高效率
	         //设置一个布尔变量来判断内层循环结果是否为质数
            for (int j = 2;j <= Math.sqrt(i);j++ ){//调用Math.sqrt()方法求开方。优化对质数有效,对非质数也有效
            if (i % j == 0){
			continue flag;//结束外层循环本次执行,只对非质数的自然数有效果,提高效率
           }
		   }
		   System.out.println("找到一个质数" + i); //使用continue flag可以省略条件判断过程
	   }
	       long end = System.currentTimeMillis();
		   System.out.println("程序2执行时间=" + ( end - start));
	}
}
发布了47 篇原创文章 · 获赞 1 · 访问量 1090

猜你喜欢

转载自blog.csdn.net/wisdomcodeinside/article/details/103794634