Java中的循环语句
花飞飞花 人气:11.1 while 循环语句
while 语句也称为条件判断语句. 循环方式 : 利用一个条件来控制是否要反复执行这个语句.
语法 :
1 while(条件表达式){ 2 执行语句 3 }
当条件表达式的返回值为真时,执行 " {} " 中的语句,当执行完 " {} " 中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环.
注意:
不能在while表达式的括号后面加 " {} " !!!
如 :
1 while(x==5); 2 System.out.println("x的值为5");
这时程序会认为要执行一条空语句,而进入无限循环,Java编译器不会报错.
1.2 do...while 循环语句
do...while 循环语句与while循环语句相类似.
两者区别 :
while语句为先判断条件是否成立再执行循环体 , 而 do...while 循环语句则先执行一次循环会后,再判断条件是否成立 (即do...while循环语句中"{}"中的程序段至少被执行一次).
此外还应该注意,do...while语句在结尾处多一个分号 ";" .
语法:
1 do { 2 执行语句 3 } 4 while(条件表达式);
1.3 for 循环语句
1.for 语句
语法 :
1 for (表达式1 ; 表达式2 ; 表达式3) { 2 语句序列 3 } 4 表达式1 : 初始化表达式,负责完成变量的初始化. 5 表达式2 : 循环条件表达式,值为boolean型的表达式,指定循环条件. 6 表达式3 : 循环后操作表达式,负责修整变量,改变循环条件.
技巧点 :
在编程时,有时会使用for循环的特殊语法格式来实现无限循环,语法格式为:
1 for (;;){ 2 ... 3 } 4 对于这种无限循环,可以通过break语句跳出循环.例如: 5 for(;;){ 6 if(x<20) 7 break; 8 x++; 9 }
2.foreach 语句
for循环的语法糖.
语法:
1 for(元素变量 x : 遍历对象 obj){ 2 引用了 x 的java语句; 3 }
循环控制语句:
1.1 break 语句
不仅break语句可以跳出switch结构 , 也可以用break语句跳出当前循环体,从而中断当前循环.
例如:
public class BreakTest{ public static void main(String[] args){ for(int i = 0 ; i <= 100 ; i++){ System.out.println(i); if( i == 6){ break; // 如果 i 等于6则跳出循环 } } System.out.println("--end--"); } }
但是,循环嵌套的情况下, break语句将只会使程序流程跳出包含它的最内层的循环结构即只跳出一层循环.
当然Java提供了"标签"功能,使一次跳出的最外层循环.
语法:
1 标签名 : 循环体 { 2 break 标签名; 3 } 4 标签名: 任意标识符. 5 循环体: 任意循环语句. 6 break标签名: break跳出指定的循环体,此循环体的标签名必须与break的标签名一致.
例如:
1 public class BreakOutsideNested { 2 public static void main(String[] args){ 3 Loop: for(int i = 0; i < 3; i++){ 4 for(int j = 0; j < 6; j++){ 5 if (j == 4){ 6 break Loop; 7 } 8 System.out.println("i=" + i + "j=" + j); 9 } 10 } 11 } 12 }
1.2 continue 语句
continue 语句是对break语句的补充. continue 不是立即跳出循环体,而是跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环. 在for循环中遇到continue后,首先执行循环的增量部分,然后进行条件测试.在while和do...while循环中,continue语句使控制直接回到条件测试部分.
例如:
1 public class ContinueTest{ 2 public static void main(String[] args){ 3 for(int i = 1; i < 20; i ++){ 4 if(i % 2 == 0){ 5 continue; // 跳到下一循环 6 } 7 System.out.println(" i "); 8 } 9 } 10 }
与break一样,continue也支持标签功能,语法:
1 标签名 : 循环体 { 2 continue 标签民; 3 } 4 标签名 : 任意标识符. 5 循环体 : 任意循环体. 6 continue 标签名 : continue跳出指定的循环体,此循环体的标签名必须与continue的标签名一致.
加载全部内容