循环结构

image.png
循环条件必须是boolean类型


while循环

语法格式

  1. 初始化条件;------>循环外
  2. while(循环条件){
  3. 循环体;
  4. 迭代条件;
  5. }
  6. 执行过程:1-->2-->3-->4-->2-->3-->4-->2-->3········
  • for循环和while循环是可以相互转换的!
  • 区别:for循环和while循环的初始化条件部分的作用范围不同。

do-while

先执行后判断

语法格式

  1. 初始化条件;
  2. do{
  3. 循环体;
  4. 迭代条件;
  5. }while(循环条件);
  6. 执行过程::1-->3-->4-->2-->3-->4-->2-->3-->4-->2-->3········
  • do-while循环至少会执行一次循环体!
  • 开发中,使用for和while更多一些。较少使用do-while

for循环

语法格式:

  1. for (1 初始化条件; 2、循环条件; 4、迭代条件){
  2. 3、循环体
  3. }
  4. 执行过程:1-->2-->3-->4-->2-->3-->4-->2-->3········
  1. public static void main(String [] args){
  2. int sum;
  3. int i;
  4. for(i=1;i<=100;i++){
  5. if(i%2!=0){
  6. sum=1;
  7. }else{
  8. sum=1;
  9. }
  10. }
  11. System.out.print(sum); //报错,变量 'sum' 可能尚未初始化。
  12. }

编译无法通过:for之外未初始化,即使for之内初始化亦通过不了
原因:for循环可能未达到循环条件而无法进入
image.png

  1. int sum;
  2. //int i;
  3. //for(i=1;i<=100;i++){
  4. if (4 % 2 != 0) {//false
  5. sum = 1;\\条件表达式为false,此处语句不执行,此处未初始化亦能编译通过
  6. } else {
  7. sum = 1;\\条件表达式为false,此处未初始化不能编译通过
  8. }
  9. System.out.print(sum);
  10. 编译可通过:变量sum声明时虽未初始化,但if - else结构中初始化了;而程序执行到if - else结构是必定会执行其中一条分支的。