我应该如何构造那些嵌套的if语句?

时间:2015-07-09 11:08:58

标签: matlab if-statement boolean-logic

我有这样的嵌套:

  if (condition 1)
    if (condition 2)
        statement
    end
else
    if (condition 3)
       statement
    end
end

这两个陈述是一样的。 如此写入,仅当条件1不满足时才进入条件3,而如果条件2不满足则中断语句的执行。相反,我希望我的代码也跳到条件3,在这种情况下只有条件2不满足(条件1是)。 我应该使用任何“中断”或“切换”,还是只需更改我的嵌套if的处置?

编辑:基本上我想要如果条件1满足但条件2不满足它跳到条件3。 换句话说,如果符合以下条件,我希望验证条件3: 1)条件1不满足; 2)满足条件1但不满足条件2。

3 个答案:

答案 0 :(得分:2)

你需要的是(请注意,在matlab中你不需要括号来表示if条件):

if (condition1 && condition2) || condition3
  statement
end

答案 1 :(得分:1)

您必须考虑逻辑,何时输入statement

  1. 如果condition1和condition2为真。
  2. 如果condition1为false且condition3为true。
  3. 如果condition1为true,则condition2为false且condition3为true。
  4. 现在我们可以使用逻辑OR ||和逻辑AND &&将所有内容放入一个if子句中。 我们还可以将1.和3.术语结合起来

    1. 如果condition1为true且condition2或条件3为真
    2. 这一起给出了:

      if (condition1 && (condition2 || condition3)) || (~condition1 && condition3)
          statement
      end
      

答案 2 :(得分:-1)

感谢你的所有建议。他们真的帮我找到了答案。最后我解决了我的问题:

if (condition 1) && (condition 2)
    statement
else
    if (condition 3)
       statement
    end
end