Java 中 for 循环的三种方式详解

后端 潘老师 3个月前 (12-08) 90 ℃ (0) 扫码查看

本文主要讲解关于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.panziye.com),学习愉快哦!


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/back/12326.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】