[转] 再探java基础——break和continue的用法
原文地址:http://blog.csdn.net/luoweifu/article/details/10756017
break
break可用于循环和switch...case...语句中。
用于switch...case中:
执行完满足case条件的内容内后结束switch,不执行下面的语句。
eg:
- public static void breakSwitch1() {
- int n = 1;
- switch (n) {
- case 1:
- System.out.println("this is one.");
- break;
- case 2:
- System.out.println("this is two.");
- break;
- default:
- System.out.println("Others.");
- }
- }
结果:
this is one.
eg2:
- public static void breakSwitch2() {
- int n = 1;
- switch (n) {
- case 1:
- System.out.println("this is one.");
- //break;
- case 2:
- System.out.println("this is two.");
- break;
- default:
- System.out.println("Others.");
- }
- }
结果:
this is one.
this is two.
用于循环中
break; 结束本层循环。
eg:
- public static void breakTest1() {
- System.out.println("begin to circulating.");
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j < 5; j++) {
- if (i == 2 && j==3) {
- System.out.println("break is executed!");
- break;
- }
- System.out.print(i + "*" + j + "=" + i * j + " ");
- }
- System.out.println();
- }
- }
结果:
begin to circulating.
0*0=0 0*1=0 0*2=0 0*3=0 0*4=0
1*0=0 1*1=1 1*2=2 1*3=3 1*4=4
2*0=0 2*1=2 2*2=4 break is executed!
3*0=0 3*1=3 3*2=6 3*3=9 3*4=12
4*0=0 4*1=4 4*2=8 4*3=12 4*4=16
break [flag]; 结束带有[flag]标记层到本层的所有循环。
eg1:
- public static void breakTest2() {
- System.out.println("begin to circulating.");
- loop:for (int i = 0; i < 5; i++) {
- for (int j = 0; j < 5; j++) {
- if (i == 2 && j==3) {
- System.out.println("break is executed!");
- break loop;
- }
- System.out.print(i + "*" + j + "=" + i * j + " ");
- }
- System.out.println();
- }
- }
结果:
begin to circulating.
0*0=0 0*1=0 0*2=0 0*3=0 0*4=0
1*0=0 1*1=1 1*2=2 1*3=3 1*4=4
2*0=0 2*1=2 2*2=4 break is executed!
eg2:
- public static void breakTest3() {
- loop: for (int i = 0; i < 5; i++) {
- for (int j = 0; j < 5; j++) {
- System.out.print("level " + i + ":");
- for (int k = 0; k < 5; k++) {
- if (i == 1 && j == 2 && k == 3) {
- break loop;
- }
- System.out.print(i + "+" + j + "+" + k + "=" + i + j + k
- + " ");
- }
- System.out.println(" ");
- }
- System.out.println();
- }
- }
结果
level 0:0+0+0=000 0+0+1=001 0+0+2=002 0+0+3=003 0+0+4=004
level 0:0+1+0=010 0+1+1=011 0+1+2=012 0+1+3=013 0+1+4=014
level 0:0+2+0=020 0+2+1=021 0+2+2=022 0+2+3=023 0+2+4=024
level 0:0+3+0=030 0+3+1=031 0+3+2=032 0+3+3=033 0+3+4=034
level 0:0+4+0=040 0+4+1=041 0+4+2=042 0+4+3=043 0+4+4=044
level 1:1+0+0=100 1+0+1=101 1+0+2=102 1+0+3=103 1+0+4=104
level 1:1+1+0=110 1+1+1=111 1+1+2=112 1+1+3=113 1+1+4=114
level 1:1+2+0=120 1+2+1=121 1+2+2=122
continue
continue; 结束本层的本次循环。
eg1:
- public static void continueTest1() {
- for (int i = 0; i < 10; i++) {
- if (i == 6) {
- continue;
- }
- System.out.print(i + " ");
- }
- }
结果:
0 1 2 3 4 5 7 8 9
eg2:
- public static void continueTest2() {
- for (int i = 0; i < 5; i++) {
- for (int j = 0; j < 5; j++) {
- if (i == 2 && j == 3) {
- continue;
- }
- System.out.print(i + "*" + j + "=" + i * j + " ");
- }
- System.out.println();
结果:
0*0=0 0*1=0 0*2=0 0*3=0 0*4=0
1*0=0 1*1=1 1*2=2 1*3=3 1*4=4
2*0=0 2*1=2 2*2=4 2*4=8
3*0=0 3*1=3 3*2=6 3*3=9 3*4=12
4*0=0 4*1=4 4*2=8 4*3=12 4*4=1
continue[flag]; 结束带有[flag]标记层的本次循环,且终止[flag]层以内的层在[flag]标记层本次循环下的循环。有点绕口,也很难表述清楚,直接看例子吧:
eg1:
- public static void continueTest3() {
- loop: for (int i = 0; i < 10; i++) {
- for (int j = 0; j < 10; j++) {
- if (i == 3 && j == 4) {
- continue loop;
- }
- System.out.print(i + "*" + j + "=" + i * j + " ");
- }
- System.out.println();
- }
- }
结果
0*0=0 0*1=0 0*2=0 0*3=0 0*4=0 0*5=0 0*6=0 0*7=0 0*8=0 0*9=0
1*0=0 1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*0=0 2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*0=0 3*1=3 3*2=6 3*3=9 4*0=0 4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*0=0 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*0=0 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*0=0 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*0=0 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*0=0 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
eg2:
- public static void continueTest4() {
- loop: for (int i = 0; i < 5; i++) {
- for (int j = 0; j < 5; j++) {
- System.out.print("level " + i + ":");
- for (int k = 0; k < 5; k++) {
- if (i == 1 && j == 2 && k == 3) {
- continue loop;
- }
- System.out.print(i + "+" + j + "+" + k + "=" + i + j + k
- + " ");
- }
- System.out.println(" ");
- }
- System.out.println();
- }
- }
结果:
level 0:0+0+0=000 0+0+1=001 0+0+2=002 0+0+3=003 0+0+4=004
level 0:0+1+0=010 0+1+1=011 0+1+2=012 0+1+3=013 0+1+4=014
level 0:0+2+0=020 0+2+1=021 0+2+2=022 0+2+3=023 0+2+4=024
level 0:0+3+0=030 0+3+1=031 0+3+2=032 0+3+3=033 0+3+4=034
level 0:0+4+0=040 0+4+1=041 0+4+2=042 0+4+3=043 0+4+4=044
level 1:1+0+0=100 1+0+1=101 1+0+2=102 1+0+3=103 1+0+4=104
level 1:1+1+0=110 1+1+1=111 1+1+2=112 1+1+3=113 1+1+4=114
level 1:1+2+0=120 1+2+1=121 1+2+2=122 level 2:2+0+0=200 2+0+1=201 2+0+2=202 2+0+3=203 2+0+4=204
level 2:2+1+0=210 2+1+1=211 2+1+2=212 2+1+3=213 2+1+4=214
level 2:2+2+0=220 2+2+1=221 2+2+2=222 2+2+3=223 2+2+4=224
level 2:2+3+0=230 2+3+1=231 2+3+2=232 2+3+3=233 2+3+4=234
level 2:2+4+0=240 2+4+1=241 2+4+2=242 2+4+3=243 2+4+4=244
level 3:3+0+0=300 3+0+1=301 3+0+2=302 3+0+3=303 3+0+4=304
level 3:3+1+0=310 3+1+1=311 3+1+2=312 3+1+3=313 3+1+4=314
level 3:3+2+0=320 3+2+1=321 3+2+2=322 3+2+3=323 3+2+4=324
level 3:3+3+0=330 3+3+1=331 3+3+2=332 3+3+3=333 3+3+4=334
level 3:3+4+0=340 3+4+1=341 3+4+2=342 3+4+3=343 3+4+4=344
level 4:4+0+0=400 4+0+1=401 4+0+2=402 4+0+3=403 4+0+4=404
level 4:4+1+0=410 4+1+1=411 4+1+2=412 4+1+3=413 4+1+4=414
level 4:4+2+0=420 4+2+1=421 4+2+2=422 4+2+3=423 4+2+4=424
level 4:4+3+0=430 4+3+1=431 4+3+2=432 4+3+3=433 4+3+4=434
level 4:4+4+0=440 4+4+1=441 4+4+2=442 4+4+3=443 4+4+4=444
PS
突然记得我以前用C语言写过类似的程序,并传到了百度库中。后来找来看了一下,发现写的好简单,但当时硬是写了大半天,而且写完之后还特别高兴,觉得这就是我的杰作,并传到了百度文库中……那时是刚上大学,在读大一刚入门的时候写的。程序员就是这样,总是沉醉于自己的作品之中,那怕是很简单,只要是在进步,把自己不会的东西写出来了,就特别高兴,这也是我们不断努力的动力啊!
有几个例子还是挺有意思的,拿出来秀一下:
例1:输入一批考试分数,用-1作为结束标志,若输入大于100,\n则提示重新输入。然后计算最高分、最低分和平均值。
- #include<stdio.h>
- void main()
- {
- int mark,n=0,sum=0,max=0,min=100;
- float average;
- for(;;)
- {
- scanf("%d",&mark); //输入学生成绩
- if(mark>100) //如果输入的成绩大于100,则重新输入
- {
- printf("Please reinput:\n");
- continue; //结束本次循环,返回for循环
- }
- if(mark==-1) //-1表示输入学生成绩结束
- break; //终止整个循环,跳出循环体
- n++;
- sum=sum+mark;
- if(mark>max) max=mark; //max存放最大的成绩
- if(mark<min) min=mark; //min存放最小的成绩
- }
- average=(float)sum/n;
- //“(float)sum”是强制型类型变换,使average的值一定为实数
- printf("max=%d,min=%d,average=%f\n",max,min,average);
- }
例2:计算半径从1到20时圆的面积,直到面积大于200为止。
- #include<stdio.h>
- #define PI 3.14159265
- void main()
- {
- int r;
- float s;
- for(r=1;r<=20;r++)
- {
- s=PI*r*r;
- if(s>200) break;
- printf("r=%d,s=%.2f\n",r,s);
- }
- }
例3:输出50到150之间不能被5整除的整数。
- #include<stdio.h>
- void main()
- {
- int i;
- for(i=50;i<=150;i++)
- {
- if(i%5==0)
- {
- printf("\n"); //使输出的显示每五个数换一行。
- continue;
- }
- printf("%5d",i);
- }
- printf("\n");
- }
[转] 再探java基础——break和continue的用法的更多相关文章
- 再探java基础——break和continue的用法
再探java基础——break和continue的用法 break break可用于循环和switch...case...语句中. 用于switch...case中: 执行完满足case条件的内容内后 ...
- 《Java基础——break与continue用法详解》
Java基础--break与continue用法详解 1. break语句: 规则: 1. 仅用于循环语句和switch语句当中,用于跳出循环. 2. 当只有一层循环时,则直接跳出循环,不 ...
- Java 基础 break和continue关键字的使用
break&continue关键字的使用 break:使用在switch...case语句或者循环结构语句中,表示结束当前循环. 示例代码: public class TestBreak { ...
- Java基础break、continue语句的用法
break适用范围:只能用于switch或者是循环语句中.当然可以用于增强for循环. break作用: 1. break用于switch语句的作用是结束一个switch语句. 2. break用于循 ...
- 再探Java基础——String.format(String format, Object… args)的使用
最近看到类似这样的一些代码:String.format("参数%s不能为空", "birthday"); 以前还没用过这功能不知咐意思,后研究了一下,详细讲解如 ...
- 再探Java基础——throw与throws
http://blog.csdn.net/luoweifu/article/details/10721543 异常处理机制 异常处理是对可能出现的异常进行处理,以防止程序遇到异常时被卡死,处于一直等待 ...
- 再探java基础——对面向对象的理解(2)
对象.类和抽象类的区别 对象是一个具体的事物,类是对具有相同属性和行为的一组对象的抽象,对象是类的一个一个人的具体实例:抽象类是一种特殊的类,是对类的进一步抽象,抽象类不能被实例化. 类.抽象类和接口 ...
- 再探java基础——零碎基础知识整理
1.java是解释型语言.java虚拟机能实现一次编译多次运行. 2.JDK(java software Development kit 软件开发包),JRE(java Runtime Environ ...
- java基础———break,continue
break通常用在循环语句之中用来跳出循环: continue终止某次循环过程,跳过尚未执行的语句:接着执行下次是否执行循环的判定:
随机推荐
- SpringMVC接收参数的注解笔记
1.@RequestParam var param = {}; param.keys = delKeys.join();//delKeys是数组,如delKeys=['a',b','c'],join函 ...
- NYOJ--1237最大岛屿
最大岛屿 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的 ...
- 《TCP/IP 详解 卷一》读书笔记-----Ping&Traceroute
1.ping是用于测试对方主机是否可达的命令,其实本质上就是echo类型的ICMP报文.同时,ping还能用于计算RTT(round-trip time),即两台主机间的往返时延. 2.随着网络安全意 ...
- Eclipse 中的重构功能
Eclipse 中的重构功能使其成为了一个现代的 Java 集成开发环境 (IDE),而不再是一个普通的文本编辑器.使用重构,您可以轻松更改您的代码,而不必担心对别处造成破坏.有了重构,您可以只关注于 ...
- 第2章 面向对象的设计原则(SOLID):4_接口隔离原则(ISP)
4. 接口隔离原则(Interface Segregation Principle,ISP) 4.1 定义 (1)使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口.类间的 ...
- java 20 - 5 字节输出流写出数据的一些方法
首先回顾下 字节输出流操作步骤: A:创建字节输出流对象 B:调用write()方法 C:释放资源 创建字节流输出对象 FileOutputStream fos = new FileOutput ...
- 【转】【Asp.Net】Asp.net发送邮件的两种方法小结
这几天看了一下Asp.net发送邮件方面的东西,记得之前的IIS6上有SMTP服务器,可以直接利用这个进行邮件发送,现在的开发环境是Windows 7,找了半天没有找到,到网络上查了才知道原来wind ...
- 【转】WCF与Web API 区别(应用场景)
Web api 主要功能: 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作 请求的回 ...
- Linux下用信号量实现对共享内存的访问保护
转自:http://www.cppblog.com/zjl-1026-2001/archive/2010/03/03/108768.html 最近一直在研究多进程间通过共享内存来实现通信的事情,以便高 ...
- System类及其常用函数
System 类包含一些有用的类字段和方法.它不能被实例化. 常用方法: 1.static void arraycopy(Object src, int srcPos, Object dest, in ...