java里面各个循环

本文探讨了一个关于Java编程的有趣细节:在for循环中处理空集合时,虽然forEach、增强for循环和Lambda表达式有不同的行为,但不报错的特性让开发者需要注意。特别指出lambda表达式中的变量必须为final。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发现1个好玩的事情。for循环里面把这个集合删掉不会报错的。

1、forEach

空值不会报错,null则报错

            List<String> list = new ArrayList<>();
            list.forEach(System.out::println);

2、增强for循环 iter
同上,空不会报错,null则报错。

        ArrayList<String> strings = new ArrayList<>();
        for (String string : strings) {
            System.out.println(1);
        }

3、lamda的forEach
变量还需要是final的。

### for循环中冒号的作用及正确用法 #### 冒号在for循环中的作用 在编程语言如Python和Java中,`for`循环的语法结构通常会包含冒号(`: `),其主要功能是用来标记代码块的开始。具体来说,在Python中,冒号用于指示后续缩进部分是一个新的代码块,而这个代码块就是循环体[^2]。 对于Python而言,`for`语句的基本形式如下所示: ```python for item in iterable: # 循环体 pass ``` 这里的冒号表示接下来的部分属于该循环的一部分,并且这部分需要通过缩进来表明它隶属于当前的`for`循环之下。如果缺少冒号,则会产生语法错误[^3]。 而在Java中情况稍有不同,尽管提到增强型`for`循环时也可能会看到类似带有冒号的形式,但实际上这是简化后的表达方式,严格意义上并不完全等同于传统意义上的“冒号”。例如下面这段展示如何利用增强型`for`来遍历数组元素: ```java public class Main { public static void main(String[] args){ String[] names = {"Alice", "Bob", "Charlie"}; for (String name : names) { System.out.println(name); } } } ``` 上述例子展示了Java里的增强型`for`循环写法,其中的冒号起到了分隔变量声明与待迭代对象之间关系的作用,而不是像Python那样作为界定新代码区块的标志[^4]。 #### 正确使用方法和注意事项 - **Python**: 确保每次编写`for`循环都加上结尾处的冒号(`:`),并保持良好的缩进习惯以便清晰地区分各个层次上的逻辑操作。 - **Java(仅限增强For)**: 增强型`for`循环采用的是另一种风格的冒号运用模式,主要用于指定要被迭代的数据源以及临时存储每一次提取出来的数据项所使用的局部变量名称之间的关联定义[^5]。 总之,无论是在哪种语言环境下应用`for`循环,理解好各自关于冒号的具体含义及其背后的设计理念都是非常重要的一步。 ```python # Python Example with colon usage numbers = [1, 2, 3] for number in numbers: # Correct use of colon here. print(number) # Incorrect without the colon would result in SyntaxError. ``` ```java // Java Enhanced For Loop example demonstrating correct placement and role of : Integer[] integers = new Integer[]{1, 2, 3}; for(Integer num : integers){ // Here ':' separates variable from collection/array to iterate over. System.out.println(num); } // Note that traditional 'for' does not involve this kind of colon but rather uses ';' within its structure. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值