浅谈 for 循环
for循环是一种用于反复执行一组语句的控制结构,直到满足某个条件为止。for循环提供了一种紧凑的方式来迭代一个范围或集合。下面是对Java中for循环的详细介绍。
基本结构
标准的for循环
for循环的基本语法如下:
for (initialization; condition; update) {
// 循环体(要重复执行的代码)
}
- initialization:初始化部分,只执行一次,用于设置循环变量的初始值。
- condition:条件部分,每次迭代前都会检查这个条件,如果条件为true,则继续执行循环体;如果条件为false,则退出循环。
- update:更新部分,在每次迭代结束后执行,用于更新循环变量的值。
示例代码
下面是一些具体的例子来说明for循环的使用。
打印1到10的数字
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
在这个例子中:
- initialization是int i = 1,设置循环变量i的初始值为1。
- condition是i <= 10,检查i是否小于或等于10。
- update是i++,在每次循环后将i增加1。
累加1到100的和
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("Sum: " + sum);
在这个例子中,循环变量i从1增加到100,每次循环将i的值加到sum中。
嵌套的for循环
for循环可以嵌套使用,以处理多维数据或复杂的逻辑。
打印一个乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(i * j + "\t");
}
System.out.println();
}
在这个例子中,外层循环变量i从1到9,内层循环变量j从1到9,每次内层循环打印i和j的乘积。
增强的for循环(foreach)
增强的for循环用于遍历数组或集合,语法更加简洁。
遍历数组
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
在这个例子中,增强的for循环遍历数组numbers中的每一个元素,并将其赋值给number变量。
遍历集合
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
for (String name : names) {
System.out.println(name);
}
在这个例子中,增强的for循环遍历集合names中的每一个元素,并将其赋值给name变量。
注意事项
- 无限循环:如果条件部分始终为true,则for循环会变成无限循环。可以通过在循环体中使用break语句来终止无限循环。
for (;;) {
// 这将是一个无限循环
if (someCondition) {
break;
}
}
- 避免修改集合:在增强的for循环中,不要直接修改集合的结构(如添加或删除元素),这会导致ConcurrentModificationException。可以使用迭代器来安全地修改集合。
- 性能优化:在复杂的循环条件中,可以提前计算常量表达式,以避免重复计算,提高性能。