本文主要讲解关于Java 中 for 循环的三种方式详解相关内容,让我们来一起学习下吧!

1. 普通 for 循环

普通for循环语法格式如下所示:

for(初始化语句; 条件语句; 迭代语句) { 循环体代码 } 

 

语句功能举例
初始化语句循环结构的初始部分,为循环变量赋初值int i = 0
条件语句循环结构的循环条件i > 10
迭代语句循环结构的迭代部分,通常使用++--运算符来修改循环变量的值i ++

for关键字后面括号中的三个语句必须用;隔开。

for循环中,无论缺少哪部分语句,都可以在程序的其他位置补充,从而保持for循环的完整性,使循环正常执行。

如果循环体只有一行语句,那么循环体的大括号可以省略。这样虽然代码还是可以正常执行,不过为了程序的阅读准确性,建议还是加上。

一般选择循环变量时,习惯选择ijk来作为循环变量。

1.1. 全部语句不为空

List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } 

1.2. 全部语句为空

for循环中初始化、条件以及迭代部分都可以为空语句(但;不能省略),三者均为空的时候,相当于一个无限循环。等同于while(true){...}

for (;;) { System.out.println("aaa"); } //for 语句不能在未抛出异常的情况下完成 
while (true){ System.out.println("aaa"); } //while 语句不能在未抛出异常的情况下完成 

1.3. 初始化语句为空

for循环中初始化语句为空时,初始化可以在程序的其他位置给出:

List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd"); //相当于for循环中的赋值语句 int i = 0; for (; i < list.size(); i++) { System.out.println(list.get(i)); } 

1.4. 条件语句为空

for循环中条件语句为空时,将没有循环的终止条件。此时for循环语句会认为条件语句的值总是为true,循环将无限执行下去。因此,为了使循环达到某种条件时退出,需要在语句块中进行逻辑判断,并使用break语句来跳出循环,否则将产生死循环。

List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd"); for (int i = 0; ; i++) { //终止循环的条件 if (i == list.size()) { break; } System.out.println(list.get(i)); } 

1.5. 迭代语句为空

for循环中迭代语句为空时,也就没有设置控制变量的表达式,即每次循环之后无法改变变量的值,此时也无法保证循环正常结束。所以需要在循环体中添加迭代语句。

List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd"); for (int i = 0; i < list.size(); ) { System.out.println(list.get(i)); //迭代语句 i++; } 

2. 增强 for 循环

增强for循环,也称为foreach循环,是一种简化版的循环语法。

在每次迭代中,增强for循环提供对当前元素的只读访问权限,不能直接修改元素的值。

List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd"); for (String s : list) { System.out.println(s); } 

相比增强for循环,普通for循环提供了更底层的操作,更加灵活,但使用也更加繁琐。普通for循环通过索引访问集合或数组中的元素,可以直接读取和修改元素的值。

List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); list.set(i, list.get(i) + "_plus"); } for (String s : list) { System.out.println(s); } 

打印结果:

aaa bbb ccc ddd aaa_plus bbb_plus ccc_plus ddd_plus 

3. Lambda 表达式 for 循环

Lambda表达式是Java 8引入的一种函数式编程特性,它可以用于简化代码和实现函数式接口。

Lambda表达式for循环采用函数式编程风格,通过Lambda表达式定义循环体的操作,使代码更加简洁和易读。

与增强型for循环类似,Lambda表达式for循环自动迭代集合或数组中的元素,无需手动控制索引。

Lambda表达式可以访问循环外部的局部变量,无需声明为final,但变量在Lambda表达式中是隐性final(即不可修改)。

List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd"); int a = 1; list.forEach(s -> { System.out.println(s); //a = 2;编译报错,lambda 表达式中使用的变量应为 final 或有效 final }); 

以上就是关于Java 中 for 循环的三种方式详解相关的全部内容,希望对你有帮助。欢迎持续关注潘子夜个人博客(www.frpkj.com),学习愉快哦!