目录
此外,很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条语句上,然后执行它,但使程序容易出错。Java中的break和continue是不同于goto的。
特别的:带标签的使用
①break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
label1: { ……
label2: { ……
label3: { ……
break label2;
……
}
}
}
②continue语句出现在多层嵌套的循环语句体中时,也可以通过标签指明要跳过的是哪一层循环
③标号语句必须紧接在循环的头部,标号语句不能用在非循环语句的前面
题目:找出100以内的所有的素数(质数)?10000以内呢?
class PrimeNumberTest1 {
public static void main(String[] args) {
long start = System.currentTimeMillis(); //记录当前时间距离 1970-1-1 00:00:00 的毫秒数
int count = 0;//记录质数的个数
for(int i = 2;i <= 100000;i++){ //i
boolean isFlag = true; //用于标识 i 是否被除尽过
for(int j = 2;j <= Math.sqrt(i);j++){ //优化 2:将循环条件中的 i 改为 Math.sqrt(i)
if(i % j == 0){ //表明 i 有约数
isFlag = false;
break;//优化 1:主要针对非质数起作用
}
}
//判断 i 是否是质数
if(isFlag){ //如果 isFlag 变量没有给修改过值,就意味着 i 没有被j除尽过。则 i 是一个质数
//System.out.println(i);
count++;
}
}
long end = System.currentTimeMillis();
System.out.println("质数的个数为:" + count);
System.out.println("执行此程序花费的毫秒数为:" + (end - start));//1062
}
}