企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### [for](https://lingcoder.gitee.io/onjava8/#/book/05-Control-Flow?id=for) **for**循环可能是最常用的迭代形式。 该循环在第一次迭代之前执行初始化。随后,它会执行布尔表达式,并在每次迭代结束时,进行某种形式的步进。**for**循环的形式是: ~~~ for(initialization; Boolean-expression; step) statement ~~~ 初始化 (initialization) 表达式、布尔表达式 (Boolean-expression) ,或者步进 (step) 运算,都可以为空。每次迭代之前都会判断布尔表达式的结果是否成立。一旦计算结果为`false`,则跳出**for**循环体并继续执行后面代码。 每次循环结束时,都会执行一次步进。 **for**循环通常用于“计数”任务。代码示例: ~~~ // control/ListCharacters.java public class ListCharacters { public static void main(String[] args) { for(char c = 0; c < 128; c++) if(Character.isLowerCase(c)) System.out.println("value: " + (int)c + " character: " + c); } } ~~~ 输出结果(前 10 行): ~~~ value: 97 character: a value: 98 character: b value: 99 character: c value: 100 character: d value: 101 character: e value: 102 character: f value: 103 character: g value: 104 character: h value: 105 character: i value: 106 character: j ... ~~~ **注意**:变量**c**是在**for**循环执行时才被定义的,并不是在主方法的开头。**c**的作用域范围仅在**for**循环体内。 传统的面向过程语言如 C 需要先在代码块(block)前定义好所有变量才能够使用。这样编译器才能在创建块时,为这些变量分配内存空间。在 Java 和 C++ 中,我们可以在整个块使用变量声明,并且可以在需要时才定义变量。 这种自然的编码风格使我们的代码更容易被人理解 \[^1\]。 上例使用了**java.lang.Character**包装类,该类不仅包含了基本类型`char`的值,还封装了一些有用的方法。例如这里就用到了静态方法`isLowerCase()`来判断字符是否为小写。