Как выйти из условия if - PullRequest
       36

Как выйти из условия if

76 голосов
/ 15 января 2010

Какие существуют методы для преждевременного выхода из условия if?

Бывают случаи, когда я пишу код и хочу поместить оператор break внутри предложения if, только чтобы помнить, что они могут использоваться только для циклов.

Давайте возьмем следующий код в качестве примера:

if some_condition:
   ...
   if condition_a:
       # do something
       # and then exit the outer if block
   ...
   if condition_b:
       # do something
       # and then exit the outer if block
   # more code here

Я могу придумать один способ сделать это: предполагая, что случаи выхода происходят внутри вложенных операторов if, оборачивают оставшийся код в большой блок else. Пример:

if some_condition:
   ...
   if condition_a:
       # do something
       # and then exit the outer if block
   else:
       ...
       if condition_b:
           # do something
           # and then exit the outer if block
       else:
           # more code here

Проблема в том, что чем больше мест выхода, тем больше вложенного / отступного кода.

Кроме того, я мог бы написать свой код, чтобы предложения if были как можно меньше и не требовали никаких выходов.

Кто-нибудь знает хороший / лучший способ выйти из условия if?

Если есть какие-либо связанные предложения else-if и else, я полагаю, что выход из них пропустит их.

Ответы [ 11 ]

0 голосов
/ 31 мая 2018

Итак, я понимаю, что вы пытаетесь вырваться из внешнего , если кодовый блок

if some_condition:
    ...
    if condition_a:
       # do something
       # and then exit the outer if block
       ...
    if condition_b:
       # do something
       # and then exit the outer if block
# more code here

Одним из выходов из этого является то, что вы можете проверить наличие ложного условия во внешнем блоке if, который затем неявно выйдет из блока кода, а затем использовать блок else для вложения другого if в сделать что-то

if test_for_false:
    # Exit the code(which is the outer if code)

else:
    if condition_a:
        # Do something

    if condition_b:
        # Do something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...