
for 循环语法
for (变量声明; 条件; 迭代语句) {
//循环体
}
在关键字 for后面的括号中,会有三个语句
1. 第一个语句是 变量声明语句 ,允许声明一个或多个 整型变量 ;
2. 第二个语句是条件,条件的检测方式与while循环相同(每次循环开始前判断条件成立与否)。如果条件是true,则将执行循环体内的代码;然后执行迭代语句,再次请求条件,依次循环,直到条件false为止
3. 第三个语句是迭代语句,虽然可以是任何语句,但该语句通常用于递增或递减变量。
for 循环流程图

示例1
public class ForLoop1 {
public static void main(String[] args) {
for (int i = 1; i <= 5; i ++) {
System.out.println("今天天气不错");
}
}
}
解析:
在上面的示例中,我们有
- 初始化表达式 :int i = 1
- 测试表达式 :i < = 5
- 更新表达式 :i++
在此,最初i的值为 1。因此,测试表达式首次求值为true。 因此,将执行打印语句。 现在,将求值更新表达式。
每次求值更新表达式时,i的值增加 1。再次,求值测试表达式。 并且,重复相同的过程。
该过程一直进行到i为 11 时。当i为 11 时,测试表达式(i <= 10)为false,并且for循环终止。
有关的表达式及求值方式,在我们之前的文章中已经学过,不够熟悉再看一下之前的文章。
示例2
public class ForLoop2 {
public static void main(String[] args) {
int sum = 0; // 累加和
for (int i = 1; i <= 100; i ++) {
sum += i; // 加和赋值运算
}
System.out.println("1到100的累加和为:" + sum);
}
}
解析:
1. 在执行循环体前,会先执行括号中的变量声明语句int i = 1,它定义了一个 计数器 变量i并且赋值为1(注意这个语句只执行一次)。
2. 然后会执行条件判断语句i <= 100,显然条件成立,执行循环体,循环体执行完成后会才会执行括号中的第三个语句i ++,再次判断条件是否成立,直到当i的值为100时,
3. 最后一次执行循环体,这个时候i再次自增1为101,条件不成立,结束循环。
1st 变量: i = 1 and sum = 0+1 = 1
2nd 变量: i = 2 and sum = 1+2 = 3
3rd 变量: i = 3 and sum = 3+3 = 6
4th 变量: i = 4 and sum = 6+4 = 10
... .. ...
100th 变量: i = 100 and sum = 4950 + 100 = 5050
实际使用中,通常使用for循环来遍历一个 数组 ,我们将在 Java 数组小节举例介绍。
怪异使用
for循环还可以缺省变量声明语句、循环条件和迭代语句,如以下代码:
// 缺省变量声明语句
for (int i = 0; ; i ++) {
// 语句
}
// 缺省循环条件语句和迭代语句
for (int i = 0; ; ) {
// 语句
}
// 缺省所有语句 - 无限循环
for (;;) {
// 语句
}
但请注意, 通常情况下不建议这样写 。我们在这里提一下,只是希望大家看到类似的用法,不要认为是错的。
for each 循环
由于学习 for each 循环需要一些数组和集合的前置知识,我们将会在 Java 数组小节举例讲解。
break 和 continue 关键字
我们可以在循环体中使用这两个关键字来重定向程序执行流。通过以下例子我们体会一下。
break
代码:
public class BreakKeywords1 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i ++) {
if(i == 3) { // 条件语句
System.out.println("当i等于3时,终止循环!");
break;
}
System.out.println("第"+i+"次循环");
}
System.out.println("没有循环啦");
}
}
解析:
循环打印数字的代码,当循环到达第3次迭代时,执行条件分支中的语句,将 终止循环 。
注意:break语句通常配合if语句使用。
continue
代码:
public class break Keywords1 {
public static void main(String[] args) {
for (int i = 1; i <= 10; i ++) {
if(i == 3) { // 条件语句
System.out.println("当i等于3时,不要执行本次循环!");
break;
}
System.out.println("第"+i+"次循环");
}
System.out.println("没有循环啦");
}
}
解析:
只是 跳过当次循环 ,继续执行下一次循环。continue语句只能跳过它自己所在位置的循环。
小结
本节我们依次介绍了 Java 中的特殊循环结构:for循环以及for each循环。并且介绍了break和continue关键字在循环中的使用。
在使用 循环结构 编写业务代码时,为了避免死循环,一定要 确保循环条件 能够被影响。