For 循环是一种支持迭代的通用结构,是最有效的、最灵活的循环结构

Java 的 for 循环的语法格式:

for (初始化表达式;布尔表达式;更新表达式) {
    //循环语句
}
  1. 首先被执行的是初始化表达式,而且只执行一次。
  2. For 循环的布尔表达式,从一开始次数就是被固定的,比如 i<100
  3. 更新表达式就是所谓的迭代,一般是用来更新某个变量的值,从而改变布尔表达式的结果从真变假,结束循环。

示例1:利用while 循环理解for循环

package com.zctou.structure;

public class ForDemo01 {
    public static void main(String[] args) {
        int a = 1; //初始化

        while(a<=100) { //布尔表达式
            System.out.println(a) ; //循环语句
            a+=2 ;
        }
        System.out.println("============");

        //for循环
        //int i=0 初始化表达式
        //i<=100 条件表达式
        //i++ 更新表达式
        for (int i = 0; i <= 100; i++) {
            System.out.println(i);

        }
    }
}

输出:

1
3
...
97
99
============
0
1
...
99
100    
所有while循环都可以用for循环代替。

for循环的的变量为局部变量,因此使用前要先定义并初始化,生命周期是在{}内,{}外部无效。关于局部变量,成员变量和类变量三种不同的作用域,前面文章已经有详细记载,这里不再累述。

对于for循环来说,三个条件:初始化表达式布尔表达式更新表达式不是必须的,也就是说可选的。当布尔表达式为空时,也就是无法更新布尔表达式满足结束条件时,程序会形成死循环

示例:

package com.zctou.structure;

public class ForDemo02 {
    public static void main(String[] args) {
        for(;;) {
            System.out.println("死循环");
        }
    }
}

输出:

死循环
死循环
。。。
死循环
死循环
//需要强制退出
Process finished with exit code -1

示例2:分别求出0-100之间的奇数和偶数的和。

package com.zctou.structure;

public class ForDemo03 {
    public static void main(String[] args) {
        int oddSum = 0 ; //偶数和
        int evenSum = 0 ; //奇数和

        for (int i = 0; i <= 100; i++) {
            if(i%2 == 0) { //求模,能整除是偶数
                oddSum +=i ;
            } else { //不能整除为奇数
                evenSum +=i ;
            }
        }
        System.out.println("偶数和为:" + oddSum);
        System.out.println("奇数和为:" + evenSum);
    }
}

输出:

偶数和为:2550
奇数和为:2500

 示例3: 用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个数。

package com.zctou.structure;

public class ForDemo04 {
   public static void main(String[] args) {
       int j = 0;
       System.out.println("=======For循环打印开始======");
       for (int i = 1; i <= 1000; i++) {
           if(i%5 == 0) {
               System.out.print(i + "\t");
               j++ ;
               if (j==3) {
                   j=0 ;
                   System.out.println();
               }
           }
       }

       System.out.println( "\n=======While循环打印开始======");
       int k= 1;
       while (k<=1000) {
           if(k%5 ==0 ) {
               System.out.print(k + "\t");
           }
           if(k%15 == 0) {
               System.out.println();
           }
           k++ ;
       }
   }
}

输出:

=======For循环打印开始======
5    10    15    
20    25    30    
35    40    45    
...
980    985    990    
995    1000    
=======While循环打印开始======
5    10    15    
20    25    30    
35    40    45    
...
980    985    990    
995    1000    
文章目录