Ir para o conteúdo

Ramificações

Ramificações no fluxo de declarações com o if

Algumas vezes queremos fazer ações diferentes dependendo de uma condição. Exemplo:

Uma implementação Python de $f$ precisa testar o valor de $x$ e ramificar entre dois cálculos diferentes:

Forma geral de testes if

A forma geral de escrita é: se-senão, no código if-else, sendo que o else é opcional.

if condicional:
    <bloco de declarações, executados quando a condição no if é True>
else:
    <bloco de declarações, executados quando a condição no if é False>

Também é possível um composição com múltiplos if-else:

if condicional1:
    <bloco de declarações>
elif condicional2:
    <bloco de declarações>
elif condicional3:
    <bloco de declarações>
else:
    <bloco de declarações>
<próxima declaração>

Exemplo com múltipla ramificação

Uma função definida por partes:

A implementação em Python com múltiplas ramificações com if-else:

def N(x):
    if x < 0:
        return 0
    elif 0 <= x < 1:
        return x
    elif 1 <= x < 2:
        return 2 - x
    elif x >= 2:
        return 0

Testes if em linha para códigos mais curtos

Construção padrão:

if condicional:
    variavel = valor1
else:
    variavel = valor2

Sintaxe mais compacta com if-else em uma linha:

variavel = (valor1 if condicional else valor2)

Exemplo:

def f(x):
    return (sin(x) if 0 <= x <= 2*pi else 0)