break语句和continue语句
在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。
//break :结束整个循环 int count=0; while(true){ int i =(int)Math.round(100*Math.random());//得到一个0-100的随机整数 System.out.print(i+" "); count++; //循环一次计数器加1 if(i==88){ //当i等于88时,退出循环 System.out.println(); System.out.println("①.循环到第【 "+count+" 】次找到"+i); System.out.println("②.break结束整个循环"); break; } System.out.print("空 "); } System.out.println("③.这是循环外面");
continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
注意事项
1. continue用在while,do-while中,continue 语句立刻跳到循环首部,越过了当前循环的其余部分。
2. continue用在for循环中,跳到for循环的迭代因子部分。
// continue:结束本次循环 // continue语句:把100~150之间不能被3整除的数输出,并且每行输出5个 int sum =0; for(int i =100;i<=150;i++){ if(i%3==0){ // System.out.print("跳 出"+"\t"); continue; //跳出本次循环,继续下次循环 } sum++; System.out.print(i+"继续\t"); if(sum%5==0){ //每行输出5个 System.out.println(); } }
遇到被3整除时是这样的:
带标签的break和continue
goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在Java语言中得到正式使用;Java没有goto语句。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子---带标签的break和continue。
“标签”是指后面跟一个冒号的标识符,例如:“label:”。对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。
在 “goto有害”论中,最有问题的就是标签,而非goto, 随着标签在一个程序里数量的增多,产生错误的机会也越来越多。 但Java标签不会造成这方面的问题,因为它们的活动场所已被限死,不可通过特别的方式到处传递程序的控制权。由此也引出了一个有趣的问题:通过限制语句的能力,反而能使一项语言特性更加有用。
// 带标签break和continue:控制嵌套循环跳转(打印101-150之间所有的质数) here:for(int i=101;i<=150;i++){ for(int j=2;j<i/2;j++){ if(i%j==0){ continue here;//跳出到here标签处继续循环(内循环跳到外循环) } } System.out.print(i+" "); }