gpt4 book ai didi

java - 如果在 for 语句中使用了 StatementExpressionList,ForInit 的值何时会被丢弃?

转载 作者:行者123 更新时间:2023-11-29 05:57:04 24 4
gpt4 key购买 nike

一个简单的 for 语句是:

 for(ForInit/*Optional*/; EXPRESSION/*Optional*/; ForUpdate/*Optional*/) {
}


ForInit:
StatmentExpressionList
LocalVariableDecleration

StatmentExpressionList
e.g
int i = 0; a = 10, z = 2;

序列中的每个表达式都是从左到右计算的,如果任何表达式突然完成,则 for 语句突然完成,序列的计算从它完成的地方结束。从左到右评估的任何表达式的值都将被丢弃。

现在什么会导致表达式突然完成?在计算序列中每个表达式的哪个阶段丢弃该表达式的值,如果丢弃该表达式的值,那么 for 循环的其余部分将如何执行?

最佳答案

第一个参数的例子

String a = null;
for (int i = a.length(); i < 5; i++)

对于第二个参数

String a = null;
for (int i = 1; i < a.length(); i++)

第三个(你能猜到吗?)

String a = null;
for (int i = 1; i < 5; a.append(" "));

当然循环的其余部分不会执行。

更新:我将对“丢弃的值”(现在无法检查)的引用解释为:

int i = 13;
try {
String a = null;
for (int i = 1; i < a.length(); i++)
...
} catch (Exception e) {
}

// Here i = 13

关于java - 如果在 for 语句中使用了 StatementExpressionList,ForInit 的值何时会被丢弃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11658981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com