之前可能已经回答过这个问题,但我无法想出一个很好的方法来解释我的搜索。
foreach(item in list)
if(something)
{
dosomething();
}
if(somethingunrelated)
{
dosomethingunrelated();
}
除了非常难以阅读之外,是否有任何方法可以跳过if语句?
我认为这里的预期是foreach将迭代列表中的每个项目并应用第一个if语句。在foreach完成后,第二个if将被应用一次。
我没有写这篇文章,并且正在寻找遗留系统的问题。我不想这就是它,但我似乎记得你只能跳过括号,如果所有嵌套都跳过括号(在c#.net中)。这是对的吗?
答案 0 :(得分:5)
foreach(item in list)
if(something)
{
dosomething();
}
if(somethingunrelated)
{
dosomethingunrelated();
}
在逻辑上与此
相同foreach(item in list)
{
if(something)
{
dosomething();
}
}
if(somethingunrelated)
{
dosomethingunrelated();
}
不要被缩进愚弄。
答案 1 :(得分:3)
我似乎记得,如果嵌套的所有东西都跳过括号
,你只能跳过括号
否 - 如果省略括号,则只有下一个语句将在范围内。 “单一陈述”可以是括号内的陈述,因此在您的情况下
foreach(...)
if <--
{ |
| // will get executed for each item
} <--
if
{
// will get executed after the `foreach` is complete.
}
答案 2 :(得分:2)
第二个if
语句将在foreach循环完成后执行。