while (status)
for (int i = 0; i < 3; i++)
以下语法是否正确:
for (int i = 0; i < 3; i++ && status)
如果status为true,我试图让for循环中断。
答案 0 :(得分:16)
从语法上讲,您可能希望使用:
for (int i = 0; i < 3 && status; i++)
这是有效的。
有些人认为它形式不好,因为它会导致更复杂的循环和烦恼的维护程序员。您可能想要探索的另一种选择是:
for (int i = 0; i < 3; i++) {
if (!status) { break; }
}
答案 1 :(得分:2)
“如果状态为真,我试图让for循环中断。” 执行此操作的首选方法是在for循环体中使用if语句。
for(int i = 0; i&lt; 3; i ++) { 如果(状态) 打破; }
答案 2 :(得分:2)
我怀疑以下语法正确:
for (int i = 0; i < 3; i++ && status)
但它可能不是你的意思。正如Adam所指出的,您可能想要:
for (int i = 0; i < 3 && status; ++i)
这具有您想要的所有含义,循环条件的所有细节都在for
语句中。
替代形式:
for (int i = 0; i < 3; i++) {
if (!status) { break; }
}
如果您想在if
之前或之后使用某些代码,那么很有用,但if对维护程序员来说变得不那么明显了。
注意:强>
在status
语句中使用for
,如果status为false,则循环可能永远不会运行。
答案 3 :(得分:0)
语法正确是的。但意义不同。 第一段代码,运行for循环,状态等于1.第二段代码,只运行for循环10次,然后退出。
答案 4 :(得分:0)
不应将状态设置为true,而应使用“break”。