For基础

For

  • 虽然所有循环结构都可以用while和do...while表示,但Java提供了另一种语句—for循环,使得一些循环结构变得简单

  • for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。

  • for循环执行的次数是在执行前就确定的。语法格式如下:

    for(初始化;布尔表达式;更新){
      //代码语句  
    }
    
    • 100.for 回车idea自动生成语句
       for (int i = 0; i < 100; i++) {
           //代码语句
            }
    
    package com.sgz.structure;
    
    public class ForDemo01 {
        public static void main(String[] args) {
            int a = 1;//初始化条件
            while(a<=100){//条件判断
                System.out.println(a);//循环体
                a+=2;//a=a+2  迭代
    
            }
            System.out.println("while循环结束!");
    
            //初始化值//条件判断//迭代
            for(int i=1;i<=100;i++){
                System.out.println(i);
            }
    
    
         
            System.out.println("for循环结束!");
        }
    }
    
    
    • 注意点:关于for循环的以下几点说明

         for (int i = 0; i < 100; i++) {//代码语句}
           //最先         然后      迭代
      
      • 最先,执行初始化步骤。可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句。
      • 然后,检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环终止,开始执行循环体后面的语句。
      • 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。
      • 再次检测布尔表达式,循环执行上面的过程。
    • 死循环

      for(,,){}
      

    练习题

    1. 计算1-100之间的奇数和偶数的和(ForDemo02)

      public class ForDemo02 {
          public static void main(String[] args) {
              //练习1:计算0到100之间的奇数和偶数的和
              int oddSum = 0;//首字母小写和驼峰原则
              int evenSum = 0;
              for (int i = 0; i <=100; i++) {
                  if (i%2!=0){
                      oddSum+=i;//oddSum=oddSum+i
                  } else{
                      evenSum+=i;
                  }
              }
              System.out.println("奇数的和:"+oddSum);
              System.out.println("偶数的和:"+evenSum);
          }
      }
      //输出
      奇数的和:2500
      偶数的和:2550
      
    2. 用while或者for循环输出1-1000之间能被5整除的数,且每行输出3个

      • print是输出所有结果都在一行,且结果与结果之间无空格,需要空格加\t
      • println是输出一次结果换一行
      • print放在循环里可以达到每一次都输出的效果
      package com.sgz.structure;
      
      public class ForDemo03 {
          public static void main(String[] args) {
      
              for (int i = 0; i < 1000; i++) {
                  if(i%5==0){
                      System.out.print(i+"\t");//\t是每输出一个都带个空格
                      /*println是输出完一次换一行
                        print是输出完不换行
                       */
                  }
                  if (i%(5*3)==0){//每行三个
                      System.out.println();//println是输出完一次所有结果换一行,放这里刚刚好三个换一行
                     // System.out.println("\n");
                  }
              }
          }
      }
      //结果
      0	
      5	10	15	
      20	25	30	
      35	40	45	
      50	55	60	
          ...
      965	970	975	
      980	985	990	
      995	
      
    3. 输出九九乘法表

      • 首先写出一列

        package com.sgz.structure;
        
        public class ForDemo04 {
            public static void main(String[] args) {
        
                for (int i = 1; i <= 9; i++) {
                    System.out.print(1+"*"+i+"="+(1*i)+"\t");
        
                }
            }
        }
        //输出结果
        1*1=1	1*2=2	1*3=3	1*4=4	1*5=5	1*6=6	1*7=7	1*8=8	1*9=9	
        
      • 让1变成1-9,所以把上面的嵌套进另一个for循环里,这里通过int j来控制1-9

        • \t 是空格的意思
        package com.sgz.structure;
        
        public class ForDemo04 {
            public static void main(String[] args) {
        
                for (int j = 1; j <= 9; j++) {
                    for (int i = 1; i <= 9; i++) {
                        System.out.print(j+"*"+i+"="+(j*i)+"\t");
                    }
                }    
            }
        }
        //输出结果,均在一行输出
        1*1=1	1*2=2	1*3=3	1*4=4	1*5=5	... 9*6=54  9*7=63	9*8=72	9*9=81	
        
      • 让一次循坏内的结果在一行,不在一次循环内的结果换一行

        package com.sgz.structure;
        
        public class ForDemo04 {
            public static void main(String[] args) {
        
                for (int j = 1; j <= 9; j++) {
                    for (int i = 1; i <= 9; i++) {
                        System.out.print(j+"*"+i+"="+(j*i)+"\t");
                    }
                    System.out.println( );
                }
            }
        }
        //输出结果
        1*1=1	1*2=2	1*3=3	1*4=4	1*5=5	1*6=6	1*7=7	1*8=8	1*9=9	
        2*1=2	2*2=4	2*3=6	2*4=8	2*5=10	2*6=12	2*7=14	2*8=16	2*9=18	
        3*1=3	3*2=6	3*3=9	3*4=12	3*5=15	3*6=18	3*7=21	3*8=24	3*9=27	
        4*1=4	4*2=8	4*3=12	4*4=16	4*5=20	4*6=24	4*7=28	4*8=32	4*9=36	
        5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	5*6=30	5*7=35	5*8=40	5*9=45	
        6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	6*7=42	6*8=48	6*9=54	
        7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	7*8=56	7*9=63	
        8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	8*9=72	
        9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81	
        
      • 去掉重复的内容,i<j

        package com.sgz.structure;
        
        public class ForDemo04 {
            public static void main(String[] args) {
        
                for (int j = 1; j <= 9; j++) {
                    for (int i = 1; i <= j; i++) {
                        System.out.print(j+"*"+i+"="+(j*i)+"\t");
                    }
                    System.out.println( );//只要i>j就竖向打印
                }
            }
        }
        //输出结果
        1*1=1	
        2*1=2	2*2=4	
        3*1=3	3*2=6	3*3=9	
        4*1=4	4*2=8	4*3=12	4*4=16	
        5*1=5	5*2=10	5*3=15	5*4=20	5*5=25	
        6*1=6	6*2=12	6*3=18	6*4=24	6*5=30	6*6=36	
        7*1=7	7*2=14	7*3=21	7*4=28	7*5=35	7*6=42	7*7=49	
        8*1=8	8*2=16	8*3=24	8*4=32	8*5=40	8*6=48	8*7=56	8*8=64	
        9*1=9	9*2=18	9*3=27	9*4=36	9*5=45	9*6=54	9*7=63	9*8=72	9*9=81	
        
      • 小调整,最终代码

        package com.sgz.structure;
        
        public class ForDemo04 {
            public static void main(String[] args) {
        
                for (int j = 1; j <= 9; j++) {
                    for (int i = 1; i <= j; i++) {
                        System.out.print(i+"*"+j+"="+(i*j)+"\t");
                    }
                    System.out.println( );
                }
            }
        }
        //输出结果
        1*1=1	
        1*2=2	2*2=4	
        1*3=3	2*3=6	3*3=9	
        1*4=4	2*4=8	3*4=12	4*4=16	
        1*5=5	2*5=10	3*5=15	4*5=20	5*5=25	
        1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36	
        1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49	
        1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64	
        1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81
        
posted @ 2022-07-20 17:12  来自土木的一员  阅读(34)  评论(0)    收藏  举报