代码之家  ›  专栏  ›  技术社区  ›  SBad

嵌套if条件和中断

  •  1
  • SBad  · 技术社区  · 6 年前

    所有人,

    我有一个代码如下所示:

    if condition
    
      if condition: 
         do something
      elif condition:
         do something
      else:
         break
    else: 
      do something
    

    if condition 我在内心引入了一种突破” if条件 “想要打破内心 if条件 else “外部的 if条件 .

    在你看来,这样做有意义吗?有没有一种简单的写问题的方法。

    3 回复  |  直到 6 年前
        1
  •  2
  •   tobias_k    6 年前

    最简单的方法就是重复你的第一个条件。那就没有巢了 else 内在的 if 外部的 如果

    if conditionA and conditionB:
        do X
    elif conditionA and conditionC:
        do Y
    else: 
        do Z
    

    如果 conditionA

    另一个选择,你可以移动你的内心 一项功能(包括任何计算和准备工作 条件 conditionB )拥有它 return False 其他的 箱子,然后检查两个 以及外部功能的结果 . 然而,这个变体可能更难理解。

    def inner():
        preparation stuff
        if conditionB: 
            do X
        elif conditionC:
            do Y
        else:
            return False
        return True
    
    if not (conditionA and inner()):
        do Z
    

    或者,当然,你可以重复 do Z 部分,或将其放入一个函数并在两个位置调用该函数:

    if conditionA:
        preparation stuff
        if conditionB: 
            do X
        elif conditionC:
            do Y
        else:
            do Z # should be a function call
    else: 
        do Z # same here
    
        2
  •  1
  •   MarianD    6 年前

    break 命令用于 只是,不是为了 if-elif-else

    一、 你只能从 for while 循环。

    Python documentation :

    The break statement, like in C, breaks out of the innermost enclosing for or while loop.
    
        3
  •  0
  •   MarianD    6 年前

    Break用于跳转或退出循环,而不是if条件。

    if condition
      {
    
      if condition: 
    
         do something
    
      elseif condition:
    
         do something
    }
    else:{
    
       do something
    }