For 循环是一种支持迭代
的通用结构,是最有效的、最灵活的循环结构。
Java 的 for 循环的语法格式:
for (初始化表达式;布尔表达式;更新表达式) {
//循环语句
}
- 首先被执行的是
初始化表达式
,而且只执行一次。- For 循环的布尔表达式,从一开始次数就是被固定的,比如
i<100
;- 更新表达式就是所谓的
迭代
,一般是用来更新某个变量的值,从而改变布尔表达式的结果从真变假,结束循环。
示例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