继续记录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'为换行符
}
}