continue语句只⽤于循环语句中_流程控制之循环语句【for循
环语句】
for循环语句
for循环是Java程序设计中最有⽤的循环语句之⼀。⼀个for循环可以⽤来重复执⾏某条语句,直到某个条件得到满⾜。在Java5以后新增了foreach语法,对这两种for循环形式做详细的介绍。
1.for语句
语法如下:
for(表达式1;表达式2;表达式3)
{
语句序列
}
表达式1:该表达式⽤于初始化循环控制变量,它只在循环开始时执⾏⼀次。
表达式2:循环条件表达式,它的类型为boolean,如果表达式的值为true就执⾏⼀次循环体。
表达式3:该表达式⽤于改变循环体变量的值。
for循环语句的流程如图1所⽰。
图1 for循环流程图
For循环的执⾏过程如下:
第⼀步:执⾏表达式1,完成某⼀变量的初始化⼯作;例如inti=0;
第⼆步:判断表达式2的值;例如i<100。若表达式2的值为true,则执⾏⼀次循环体;然后执⾏第三部,否则退出循环体结束For循环。
第三部:执⾏表达式3,这部分通常执⾏循环控制变量的修改。
第四步:跳转到第⼆部继续执⾏循环
例 在项⽬中创建类Circulate,在主⽅法中使⽤for循环来计算100以内(包括100),所有偶数之和。
public classCirculate {
publicstatic voidmain(String args[]) {
intsum = 0; // 声明总和变量
for(int i = 0; i <= 100; i += 2) { //定义for循环
sum += i; // 累加100以内的偶数
}
System.out.println("100以内的所有偶数之和为:" + sum);
}
}
运⾏结果如图2所⽰。
图2 运⾏结果
2.foreach语句
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然⽽任何的foreach
语句都可以改写为for语句版本。foreach并不是⼀个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。foreach语句在遍历数组等⽅⾯为程序员提供了很⼤的⽅便。
语法如下:
for(元素变量x : 遍历对象obj){
引⽤了x的java语句;
}
foreach语句中的元素变量x,不必对其进⾏初始化,下⾯通过简单的例⼦来介绍foreach语句是怎样遍历⼀维数组的。
例 在项⽬中创建类Repetition,在主⽅法中定义⼀维数组,并foreach语句遍历该数组
运⾏结果如图3所⽰。
图3 运⾏结果
循环的跳转
continue跳转语句
continue语句只能应⽤在for、while和do...while循环语句中,⽤于结束本次循环直接跳过循环体剩余的语句,进⾏下⼀次循环。
语法:
continue 标号;
标号:这是可选参数,标号有合法标识符和“:”字符组成,例如“for1:”。
continue语句有两种使⽤情况:
不带标号跳转
如果执⾏不带标号的continue语句,将结束本次循环,跳过循环体中剩余的没有被执⾏的语句,根据循环的条件判断去执⾏下⼀次循环,或者结束循环。如果是for循环还要先执⾏表达式3,改变循环控制变量的值。
例 实现输出100以内能被7整除的所有数,使⽤continue语句过滤其它的数字。
public classContinueNull {
publicstatic voidmain(String[] args) {
System.out.println("100以内能被7整除的数有:");
for(int i = 1; i < 100; i++) {
if(i % 7 != 0) { // 当i的值不能被7整除时
continue; // 结束本次循环,放弃不能被7整除的书
}
while语句简单例子System.out.print(i + "、"); // 输出i的值
}
}
}
实例中在For循环中加⼊了if判断语句,如果循环控制变量i不能被7整除,就执⾏continue语句放弃本次循环,否则输出变量i,这时变量i肯定能被7整除。
运⾏结果如图1所⽰。
图1 实例运⾏结果
带标号跳转
这种情况下,continue语句不是跳过当前循环语句的⼀次循环,⽽是跳过标号指定的循环语句的⼀次循环,然后判断指定标号的循环条件,以决定是否执⾏标号指定的循环。
标号定义在语句之前,由⼀个合法的标识符和“:”字符组成。
语法:
标号:程序代码
continu语句跳转的标号⽤于指定循环语句,所以定义在循环语句之前。
说明:带标号的continue跳转语句经常⽤在多层循环中。
例 使⽤带标号的For循环和带标号的continue语句输出九九乘法表。
public class MultiplicationTable {
public staticvoid main(String[] args) {
outer:for (inti = 1; i <= 9; i++) { // 第⼀层循环
for (intj = 1; j <= 9; j++) { // 第⼆次循环
if (j > i) { //如果j>i
System.out.println(); // 换⾏
continue outer; // 跳过循环放弃不需要的乘数
}
Stringstr = j + "*" + i + "=" + j * i;
System.out.print(str + ""); // 使⽤制表符格式化输出
}
System.out.println();
}
}
}
实例中在内层For循环中加⼊了if判断语句,如果循环控制变量j⼤于外层循环控制变量i,那这个数字对于乘法表的当前⾏就没有⽤了,所以输出⼀个空⾏并执⾏continue语句跳出到outer标识的For循环,这时内层循环语句就被结束或者说终⽌了,转去执⾏outer标识的外层循环。
运⾏结果如图4.24所⽰。
图2 实例运⾏结果
如果把内层循环的if语句注释掉,如下所⽰:
/
/if (j > i) { // 如果j>i
// System.out.println(); // 换⾏
// continueouter; // 跳过循环放弃不需要的乘数
//}
然后再运⾏程序,将会输出如图3所⽰的结果
图3 实例注释if语句后的运⾏结果
break跳转语句
正常来说,退出循环的⽅式应该由循环条件来判断和控制,⽽break语句可以应⽤在for、while和do...while循环语句中,来实现强⾏退出循环。这也给循环增加了⼀些灵活性,也就是说,在循环条件为true的情况下,也可以根据需要使⽤break语句强⾏退出循环。
语法:
break 标号;
和continue语句⼀样,break语句也有两种使⽤情况:
不带标号的break语句可以终⽌break语句所在的循环。
例 使⽤while循环和break语句输出1⾄100所有整数的和。
public class GetSum {
publicstatic voidmain(String[] args) {
intsum = 0; // 声明总和变量
intcontrol = 1; // 声明控制变量
while(true) { // ⽆限的while循环
sum += control++; // 累加总和并步进控制变量
if(control > 100) { // 如果控制变量⼤于100
// 输出总和
System.out.println("1⾄100所有整数的和是:"+sum);
break; // 终⽌循环
}
}
}
}
实例中使⽤⽆限循环的while循环不停地累加整数的总和,并是control控制变量⾃增,当控制变量⼤于100的时候,说明100已经被累加到sum总和变量⾥了,这使循环的任务已经完成了,应该输出总和变量的数值,并执⾏break语句退出循环。
运⾏结果如图1所⽰。
图1 实例运⾏结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。