#千峰#java04循环语句

一、循环语句
1、定义:
·满足一定情况下,可以重复执行的语句
·循环语句可以帮我们用很少的代码执行大量的工作
2、分类:
。for循环
。while循环
。do...while
二、for循环语句
1、格式:

for(初始化表达式;boolean;循环后表达式){
    //执行语句
}

2、执行流程
。执行初始化语句
。执行判断条件,看其返回值是true还是false
·如果是true,就执行循环体
·如果是false,就结束循环
。循环体执行到最后,执行循环表达式
。再次执行判断条件,重复第二步
3、注意:
。循环前表达式:再循环开始前,无论循环多少次,这个表达式只执行一次
。关系表达式:无论是简单还是复杂,其结果必须是Boolean
。循环后表达式:在每次循环体执行完毕之后执行
。循环体如果只有一句话,大括号可以省略,但是建议不要省略
4、TestDemo

public class TestDemo{
    public static void main(String[] args){
        for(int i = 1 ; i<=5;i++){
            int a = 10 ;
            
            System.out.println("........");
            
            System.out.println(a);
            
            a++;
            //a是打印了5遍10 。
        }
    }
}

5、①在初始化表达式中定义的变量,在整个循环结束后,会随着循环消失。
②在初始化表达式中定义的变量,属于整个循环,无论第几遍循环,用的
都是同一个变量。
③在循环体内定义的变量,在这一边循环体执行结束时,就会消亡。
6、水仙花数:

public class TestDemo{
    public static void main(String[] args){
        for(int i = 100 ;i<=900 ; i++){
            int g = i%10 ; 
            int s = i/10%10 ; 
            int b = i/100 ; 
            int sum = g*g*g + s*s*s + b*b*b;
            if(sum==i){
                System.out.println(sum);
            }
        }
    }
}

三、for循环的特殊格式:
1、特殊格式:
。表达式2一般不可省略,否则为无限循环
for(int i = 1 ; ; i++)
//相当于条件永为真,永不为false

。表达式3亦可以省略,但是在循环体中必须有语句修改循环变量,以使
表达式2在某一时刻为false而正常结束循环。
for(int sum = 0 , i =1 ; i <= 100 ; )

。若同时省略表达式1,表达式3,则相当于while(表达式2)语句
for( ; i <=100 ; )

。三个表达式均省略,即for( ; ;)语句,此时相当于while(true)语句
2、总结:
for循环小括号内的三部分都可以不写 中间的Boolean值默认为true
四、while循环语句
1、格式:

while(boolean){
    循环语句;
    控制语句;
}

2、执行流程:
。执行判断语句,看其返回值是true还是false
·如果是true,就继续执行
·如果是false,结束循环
。执行循环体
。执行控制语句
。返回第一步继续执行
3、演示:
计算1到100的和

public class TestDemo{
    public static void main(String[] args){
        int i = 1;
        int sum = 0 ;
        while(i <=100){
            sum += i;
            i++ ; 
        }
        System.out.println(sum);
    }
}

//当我们不需要初始化表达式和循环后表达式时,while更简洁
//当死循环或者可以调用方法来判断成功或失败时。

4、

public class TestDemo{
    public static void main(String[] args){
       Scanner sc = new Scanner(System.in);
       while(sc.hasNextInt){
           int num = sc.nextint();
           System.out.println("打印结果:" + num);
       }
    }
}

5、测试题:打印100以内能被4整除,不能被7整除的数,每行打印6个

public class TestDemo{
    public static void main(String[] args){
       int i= 0 ;
       int index = 1 ;//这一行中下一次打印数值的位置
       while(i<=100){
           if(i%4==0&&i%7!=0){//过略无效数值
               if(index==6){//如果index为6,这一行本次是最后一次打印数值
                   System.out.println(i);//打印并换行
                   index = 1 ;//把计数器重置为1
               }else{
                   System.out.print(i + "/t");//如果index不是6,说明这行还有空余位置
                   index++ ; //计数器+1
               }
           }
           i++;
       }
    }

五、do.....while循环语句
1、格式:

do{
    循环语句;
    控制条件语句;
}while(boolean);

2、执行流程
。执行循环体语句
。执行控制条件语句
。执行判断条件语句,看其额返回值是true还是false
。如果是true,就继续执行循环体
。如果是false,就结束循环
3、演示:

public class TestDemo{
    public static void main(String[] args){
       int i = 0 ;
       do{
           System.out.println("nihao ");
           i++ ; 
       }while (i>0);
    }
}

4、注意事项:do....while循环无论条件是否成立循环体都会执行一次
六、关键字的使用
1、return
。可以写在方法体的任意地方
。是和方法打交道的
。结束整个方法,之后的代码全部都不在执行、

public class TestDemo{
    public static void main(String[] args){
       //循环任意区间内的整数,当找到7的倍数的时候终止整个方法
       //如果没有找到,提示没有找到
       int i =10;
       int b = 100 ; 
       for(;i<=b ; i++){
           if(i%7==0){
               System.out.println("找到的7的倍数:" + i);
               return;
           }
       }
       System.out.println("没有找到");
    }
}

2、break
。用在循环中或者switch语句中
。终止并跳出循环或者结束switch语句
。终止循环,

public class TestDemo{
    public static void main(String[] args){
       for(int i = 0 ;i<3 ; i++){
           System.out.println("break 之前的语句");
           if(i==1){
               //忽略本次循环剩下的语句
               break;
           }
           System.out.println("break之后的语句");
       }
    }
}

3、continue
。终止本次循环,继续下次循环,这次循环中continue之后的代码都不在执行

public class TestDemo{
    public static void main(String[] args){
       for(int i = 0 ;i<3 ; i++){
           System.out.println("i的值是" +i);
           if(i==1){
               //忽略本次循环剩下的语句
               continue;
           }
           System.out.println("continue之后的语句");
       }
    }
}

4、break、continue可用于父循环,给父循环起别名

public class TestDemo{
    public static void main(String[] args){
     w: for(int i =0 ;i<10 ; i++){
         //外循环语句
         System.out.println("外循环语句......前");
             for(int j = 0 ; j <10 ; j+=){
                 break w ;
             }
             System.out.println("外循环语句.....后");
         }
    }
}

5、循环嵌套案例

public class TestDemo{
    public static void main(String[] args){
     //   for(int j = 1; j<=5 ; j++){//控制着总行数
     //       for(int i = 1 ; i<=j ; i++){//控制着每行打印多少颗星星
     //           System.out.println("*");
     //       }
      //      System.out.println();//换行
      //  }
      
      
     //  for(int j = 1; j<=9 ; j++){//控制着总行数
     //    for(int i = 1 ; i<=j ; i++){//控制着每行打印多少颗星星
     //          System.out.println("*");
     //    }
      //     System.out.println();//换行
      // }
    }
}

6、九九乘法表

public class TestDemo{
    public static void main(String[] args) throws Exception{
         for(int j = 1; j<=9 ; j++){//控制着总行数
              for(int i = 1 ; i<=j ; i++){//控制着每行打印多少颗星星
                 System.out.println(i + "*" +j +"=" +(j*i) + "\t");
                 Thread.sleep(238);
              }
               System.out.println();//换行
               Thread.sleep(200);
          }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容