如果位于非括号内,则加括号

本文关键字:加括号 于非括 如果 | 更新日期: 2023-09-27 18:33:11

这可能以前在某个地方回答过,但我想不出一个好的方式来表达我的搜索。

foreach(item in list)
  if(something)
  {
    dosomething();
  }
if(somethingunrelated)
  {
    dosomethingunrelated();
  }

除了明显很难阅读之外,还有什么方法可以跳过 if 语句吗?

我认为这里预期的是 foreach 将迭代列表中的每个项目并应用第一个 if 语句。完成 foreach 后,第二个 if 将应用一次。

我没有写这个,正在搜索旧系统上的问题。我不认为是这样,但我似乎记得,如果嵌套的所有内容也跳过括号(在 c#.net 中),您只能跳过括号。这是对的吗?

如果位于非括号内,则加括号

foreach(item in list)
    if(something)
    {
        dosomething();
    }
    if(somethingunrelated)
    {
        dosomethingunrelated();
    }

逻辑上与此相同

foreach(item in list)
{
    if(something)
    {
        dosomething();
    }
}
if(somethingunrelated)
{
    dosomethingunrelated();
}

不要被缩进所迷惑。

我似乎记得,如果嵌套的所有内容也跳过括号,您只能跳过括号

否 - 如果省略括号,则只有下一个语句将在范围内。 "单个语句"可以是括号中的语句,因此在您的情况下

foreach(...)
    if   <--
    {      |
           | // will  get executed for each item
    }    <--
if   
{  
    // will get executed after the `foreach` is complete.
}

第二个 if 语句将在 foreach 循环完成后执行。