for 结构

for 结构

for 循环是将循环三要素集中写在 () 中的一种结构,语法紧凑、可读性高。

语法格式

for (表达式1; 表达式2; 表达式3) {
    语句块;
}
表达式对应循环要素说明
表达式1循环变量初始化循环开始前执行一次
表达式2循环条件判断每次循环前判断,为 true 则执行
表达式3循环变量改变每次循环体执行完后执行

执行流程

  1. 执行表达式1(变量初始化,仅一次)
  2. 计算表达式2(条件判断)
  3. 若为 true,执行循环体
  4. 执行表达式3(变量改变)
  5. 回到步骤2,如此循环
  6. 若表达式2为 false,退出循环

while 与 for 的等价对比

// while 写法
int i = 0;
while (i < 10) {
    System.out.println("foxdevelop");
    i++;
}

// for 写法
for (int j = 0; j < 10; j++) {
    System.out.println("foxdevelop");
}Code language: JavaScript (javascript)

练习1:输出 1 到 10

for (int i = 0; i < 10; i++) {
    System.out.println(i + 1);
}

练习2:求 1 到 100 的累加和

int total = 0;
for (int i = 0; i < 100; i++) {
    total += i + 1;
}
System.out.println(total); // 输出 5050Code language: HTML, XML (xml)

表达式1和表达式3的多样化

表达式1和表达式3可以使用逗号隔开,进行多个变量的初始化或改变:

for (int i = 0, j = 10; i < 10; i++, j--) {
    System.out.println(i + " " + j);
}Code language: JavaScript (javascript)

输出:

0 10
1 9
2 8
3 7
4 6
5 5
6 4
7 3
8 2
9 1

死循环

for 循环的三个表达式都可以省略,省略条件判断表达式即为死循环:

for (;;) {
    // 死循环,等同于 while(true)
}Code language: JavaScript (javascript)

变量作用域

for 循环中在表达式1声明的变量,作用域仅限于 for 循环内部:

for (int i = 0; i < 10; i++) {
    System.out.println(i);
}
// System.out.println(i); // 错误,i 超出作用域Code language: JavaScript (javascript)

如果需要在循环外使用循环变量,应在循环外声明:

int i;
for (i = 0; i < 10; i++) {
    System.out.println(i);
}
System.out.println(i); // 正确,输出 10Code language: JavaScript (javascript)

总结

特点说明
三要素集中初始化、条件、改变写在一行,结构清晰
变量作用域循环内声明的变量仅在循环内有效
表达式可省略三个表达式均可省略,灵活但需谨慎
适用场景已知循环次数的场景

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注