java - 无法在我的 for-each 循环中将“i+2”写为后置条件 [Java]
问题描述
有人可以向我解释为什么我可以在 for-each 循环中遍历 List<> 时将“i+2”写为后置条件,但在遍历 Array 时必须写“i=i+2”吗?
for(int i = 0; i < numbers.length; i+2)
{
numbers[i] = 2;
System.out.println(numbers[i]);
}
解决方案
ForUpdate
必须是 a StatementExpressionList
,即 s 的列表StatementExpression
。
i+2
是表达式,但不是语句表达式。
语句表达式可以非正式地 (*) 被认为是可能具有副作用的表达式,因此它们单独存在于语句中是有意义的。i+2
没有副作用,所以评估它没有意义。
(*) 非正式地,因为method1() + method2()
可以有副作用,因为methodN()
可以有副作用;然而,它不是一个语句表达式,因为这里的“主要”表达式——加法——本身没有副作用。
如果这for (;; method1(), method2()) { ... }
是您在ForUpdate
.
推荐阅读
- ruby-on-rails - Ruby - 是否可以将方法别名为安全导航运算符
- django - Line "host all all 0.0.0.0/0 md5" deleted from the pg_hba.conf file at the same time every day
- safari - Safari service worker work incorrect with custom offline page
- r - 按值选择列和以下 3 列
- c# - WPF C# - adding controls dynamically to XAML from custom class
- scala - How can I convert a single Spark Row to a Scala object?
- ios - iOS: Posting rotated image
- oracle - Specify a relative path as infile for a .ctl
- ruby-on-rails - 如何从数据库中提取评论并在网格视图中显示
- php - 从 WooCommerce 订单中获取项目元数据以显示它