自己的笔记记录,Java的基础知识(第三期)(本期笔记的内容有:嵌套循环、break和continue关键字)

继续记录Java的基础知识,方便自己查看,各位要是有需要也可以copy一下。
本期笔记的内容有:嵌套循环、break和continue关键字

public class lianxi03{
	public static void main (String[] args){
		/*
		嵌套循环的使用:
		1)嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环。
		
		2)外层循环:循环体B
		   内层循环:循环体A
		   
		3)说明:
			①内层循环结构遍历一遍,只相当于外层循环执行一次。
			②假设外层循环需要执行m次,内层循环需要执行n次,此时内层循环的循环体一共执行了m*n次。
			
		4)技巧:
		外层循环控制行数,内层循环控制列数,例如:九九乘法表。
		*/
		
		//获取当前时间距离1970-01-01  00:00:00的毫秒数
		long start = System.currentTimeMillis();
		
		//例题:计算10万以内的质数,并输出。
		System.out.println("嵌套循环例题:");
		boolean isFlag = true;  //用于标记i是否为质数,false为否,true为是。
		
		for( int i = 2 ; i <= 100000 ; i++ ){  //遍历10万以内的自然数
			//Math.sqrt(i)为i的平方根
			for( int j = 2 ; j <= Math.sqrt(i) ; j++ ){  //判断当前自然数i是否是质数
				if( i%j == 0 ){
					isFlag = false;
					break;  //若当前自然数i可被j整除,则不是质素,给isFlag赋值false,并退出循环
				}
			}
			//
			if( isFlag == true ){  //判断isFlag的值,确定当前自然数i是否为质数,是则输出。
				System.out.println(i);  //注意:输出也需要消耗时间
			}
			isFlag = true;  //重置isFlag的值。
		}
		
		//获取当前时间距离1970-01-01  00:00:00的毫秒数
		long end = System.currentTimeMillis();
		
		//计算该程序执行完所花费的时间。
		System.out.println("所花费的时间为:(单位:毫秒)" + (end - start) + '\n');  //'\n'为换行符
		
		/*
		break和continue关键字的使用:
		              
		              使用范围        循环中使用的作用(不同点)         相同点
		
		break       switch-case         结束当前循环          关键字后面不能声明执行语句
					 循环结构中
					 
		continue	 循环结构中	  	   结束当次循环          关键字后面不能声明执行语句       
		*/
		//例题:整数1到10,其中2的倍数不输出,并到整数7便结束输出。
		System.out.println("break和continue关键字的使用环例题:");
		for( int i = 1 ; i <= 10 ; i++ ){
			if( i == 8 ){
				break;  //if判断i的值,若i为8,则执行break语句,结束当前循环。
			}else if( i%2 == 0 ){
				continue;//if判断i的值,若i为2的倍数,则执行continue语句,跳过当次循环。
			}else {
				System.out.println(i);
			}
		}
		/*
		注意:
		return并非专门用于结束循环的,它的功能是结束一个方法。当一个方法执行到return语句时,
		这个方法将被结束,与break和continue不同的是,return直接结束整个方法,不管这个return
		处于多少层循环之内当前执行的方法都会立刻结束。
		*/
		
		
		//用break和continue关键字优化嵌套循环例题:计算10万以内的质数,并输出。
		//获取当前时间距离1970-01-01  00:00:00的毫秒数。
		long starts = System.currentTimeMillis();  
		
		System.out.println("嵌套循环例题:");		
		label:for( int i = 2 ; i <= 100000 ; i++ ){  //遍历10万以内的自然数
			//Math.sqrt(i)为i的平方根
			for( int j = 2 ; j <= Math.sqrt(i) ; j++ ){  //判断当前自然数i是否是质数
				if( i%j == 0 ){
					//当自然数i被整除时,表示自然数i不是质数,直接结束此次自然数i的循环。
					continue label;  
				}
			}
			//执行到这步的都是质数。
			System.out.println(i);  //注意:输出也需要消耗时间
		}
		//获取当前时间距离1970-01-01  00:00:00的毫秒数
		long ends = System.currentTimeMillis();
		
		//计算该程序执行完所花费的时间。
		System.out.println("所花费的时间为:(单位:毫秒)" + (ends - starts) + '\n');  //'\n'为换行符
		
	}
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值