Java 关键字break和continue的使用说明
作者:晓枫的春天 时间:2023-07-22 03:50:59
break和continue的说明
break 循环结构,一旦执行,就结束(或跳出)当前循环结构,此关键字的后面,不能声明语句
continue 循环结构,一旦执行,就结束(或跳出)当次循环结构,此关键字的后面,不能声明语句
此外,很多语言都有goto语句,goto语句可以随意将控制转移到程序中的任意一条语句上,然后执行它,但使程序容易出错。Java中的break和continue是不同于goto的。
break语句用于终止某个语句块的执行
{ ……
break;
……
}
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
label1: { ……
label2: { ……
label3: { ……
break label2;
……
}
}
}
continue语句出现在多层嵌套的循环语句体中时,也可以通过标签指明要跳过的是哪一层循环。
标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
练习、找出100以内所有的素数(质数)?100000以内的呢?
目的:不同的代码的实现方式,可以效率差别很大。
分析:素数(质数):只能被1和它本身整除的自然数。 ---> 从2开始,到这个数-1为止,此范围内没有这个数的约数。则此数是一个质数。 比如:2、3、5、7、11、13、17、19、23、...
方案1
static void printSushu() {
long start = System.currentTimeMillis();//开始时间
int cnt = 0;//个数
for (int i = 2; i <= 100000; i++) {
boolean isFlag = true;//是否除尽
for (int j = 2; j <= i - 1; j++) {
if (i % j == 0) {
isFlag = false;
}
}
if (isFlag) {
cnt++;
}
}
long end = System.currentTimeMillis();
System.out.println("质数的个数为:" + cnt);
System.out.println("执行此程序花费的毫秒数为:" + (end - start));
/* 质数的个数为:9592
执行此程序花费的毫秒数为:18203*/
}
方案2
static void printSushu1() {
long start = System.currentTimeMillis();//开始时间
int cnt = 0;//个数
for (int i = 2; i <= 100000; i++) {
boolean isFlag = true;//是否除尽
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
isFlag = false;
break;
}
}
if (isFlag) {
cnt++;
}
}
long end = System.currentTimeMillis();
System.out.println("质数的个数为:" + cnt);
System.out.println("执行此程序花费的毫秒数为:" + (end - start));
/* 质数的个数为:9592
执行此程序花费的毫秒数为:24*/
}
方案3、
static void printSushu2() {
long start = System.currentTimeMillis(); //记录当前时间距离1970-1-1 00:00:00的毫秒数
int count = 0;//记录质数的个数
label:
for (int i = 2; i <= 100000; i++) { //i
for (int j = 2; j <= Math.sqrt(i); j++) { //优化2:将循环条件中的i改为Math.sqrt(i)
if (i % j == 0) { //表明i有约数
continue label;
}
}
//一旦程序能执行到此位置,说明i就是一个质数
// System.out.println(i);
count++;
}
long end = System.currentTimeMillis();
System.out.println("质数的个数为:" + count);
System.out.println("执行此程序花费的毫秒数为:" + (end - start));//1062
}
练习2、生成 1-100 之间的随机数,直到生成了 97 这个数,看看一共用了几次?提示:使用 (int)(Math.random() * 100) + 1
static void printNum() {
int count = 0;//记录循环的次数(或生成随机数进行比较的次数)
while (true) {
int random = (int) (Math.random() * 100) + 1;
count++;
if (random == 97) {
break;
}
}
System.out.println("直到生成随机数97,一共比较了 " + count + " 次!!");
}
来源:https://www.cnblogs.com/wdh01/p/17158224.html
标签:Java,关键字,break,continue
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java中BufferedReader和BufferedWriter使用方式
2022-01-06 15:06:05
![](https://img.aspxhome.com/file/2023/9/75779_0s.png)
C#使用Socket发送和接收TCP数据实例
2022-12-13 13:33:46
![](https://img.aspxhome.com/file/2023/3/116433_0s.jpg)
浅谈Java获得多线程的返回结果方式(3种)
2023-04-02 05:37:36
Java泛型定义与用法实例详解
2023-11-25 11:50:28
C#实现在图像中绘制文字图形的方法
2023-03-20 17:06:11
java从输入流中获取数据并返回字节数组示例
2021-12-08 22:47:36
android中实现背景图片颜色渐变方法
2021-12-26 04:55:40
![](https://img.aspxhome.com/file/2023/2/120112_0s.png)
Android事件分发机制(上) ViewGroup的事件分发
2022-05-28 12:40:05
![](https://img.aspxhome.com/file/2023/6/106006_0s.jpg)
Java TreeSet实现学生按年龄大小和姓名排序的方法示例
2023-01-09 15:25:18
如何在Spring Boot应用中优雅的使用Date和LocalDateTime的教程详解
2023-03-14 04:54:11
Java DecimalFormat 保留小数位及四舍五入的陷阱介绍
2023-11-09 04:49:33
Android操作系统之内存回收策略
2021-09-26 06:38:01
Android编程之高效开发App的10个建议
2021-08-28 15:55:46
C#中使用反射遍历一个对象属性及值的小技巧
2021-12-10 18:15:43
Android WorkManager浅谈
2023-03-24 11:26:46
![](https://img.aspxhome.com/file/2023/4/100654_0s.jpg)
Android网络工具类NetworkUtils详解
2022-12-08 05:18:43
Android AIDL和远程Service调用示例代码
2022-07-14 03:06:15
![](https://img.aspxhome.com/file/2023/9/126799_0s.png)
Android采用消息推送实现类似微信视频接听
2022-05-30 09:11:35
安卓输入框被虚拟键盘挡住的问题(微信开发)
2023-12-01 15:42:43
![](https://img.aspxhome.com/file/2023/9/104659_0s.png)
androidQ sd卡权限使用详解
2021-09-27 17:38:51