Java 关键字break和continue的使用说明
作者:晓枫的春天 发布时间:2023-07-22 03:50:59
标签:Java,关键字,break,continue
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


猜你喜欢
- 基于有了OO的基础后,开始认真学习设计模式!设计模式是java设计中必不可少的!Apple.javapackage strategy;/**
- 用java的框架和面板的知识做的一个展示月食过程的小程序。这里的想法就是先把背景设置成黑色,然后画一个黄色的圆作为月亮,接着画一个黑色的圆,
- 在Android中通常用MediaPlayer来播放一些媒体文件,对于音频文件来说只需直接使用MeidaPlayer结合几句代码即可,但是对
- MD5的全称是Message-Digest Algorithm 5,Message-Digest泛指字节串(Message)的Hash变换,
- 本文实例讲述了Java编程实现提取文章中关键字的方法。分享给大家供大家参考,具体如下:实现代码:/** * 相关的jar包 * lucene
- Android 中ScrollView与ListView冲突问题的解决办法自定义MyListViewpublic class MyListV
- 一、Servlet概述1.sun公司提供的动态web资源开发技术。本质是上一段java小程序,要求这个小程序必须实现Servlet接口,以便
- 文档中的设置有序或无序列表是一种反应内容上下级关系或者内容相同属性的方式,与单纯的文字叙述相比,它能有效增强文档内容的条理性,突出重点。因此
- 最近没做项目,重新整理了一个最完整的Mybatis Generator(简称MBG)的最完整配置文件,带详解,再也不用去看EN的User G
- 前言我们之前学的单链表,默认只能从链表的头部遍历到链表的尾部,在实际中应用太少见,太局限;而双向链表,对于该链表中的任意节点,既可以通过该节
- 一、摘要这篇文章将介绍Spring整合Mybatis 如何完成SqlSessionFactory的动态切换的。并且会简单的介绍下MyBati
- 1、汉字转十六进制UNICODE编码字符串 /// <summary> /// //// /// <
- 一、所需要的包:1、commons-fileupload-1.2.1.jar:下载地址http://commons.apache.org/d
- 现在的手游基本都是重复操作,一个动作要等好久,结束之后继续另一个动作.很麻烦,所以动起了自己写一个游戏辅助的心思.这个辅助本身没什么难度,就
- 一、前言拖拽(Drag&Drop),属于是极其常用的基础功能。无论是在系统上、应用上、还是在网页上,拖拽随处可见。同时拖拽时的鼠标效
- 目前Android在全世界市场上大约有75%的占有率,国人Android手机的持有比例更甚,甚至达到90%以上。因此搞计算机的一听说手机应用
- 前言上一篇博客内容对 RecyclerView 回收复用机制相关源码进行了分析,本博客从自定义 View 三大流程 measure、layo
- 在谈 JVM 内存区域划分之前,我们先来看一下 Java 程序的具体执行过程,我画了一幅图。Java 源代码文件经过编译器编译后生成字节码文
- 本文实例讲述了C#使用虚拟方法实现多态。分享给大家供大家参考。具体分析如下:我们看一个例子,假若有一个动物类,类中用方法cry()描述动物的
- 在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。通常对象之间的比较可以从两个方面去看:第一个方面:对象的地址是否