A tomada de decisão é um dos conceitos fundamentais da programação. Quase todos os programas necessitam de realizar diferentes tarefas de acordo com determinadas condições. O computador possui a capacidade de avaliar uma condição e decidir por qual dos caminhos a seguir. Em geral, uma condição é obtida pela relação de dois operandos e um operador relacional. Só tem um de dois resultados: verdadeiro ou falso.
If
No núcleo da lógica de programação temos a instrução if (se). O if é uma instrução condicional que, quando verdadeira, executa uma determinada parte do código. Em conjunto com a instrução if pode aparecer o else (senão) ou else if (senão se). No entanto, no Python o else if é abreviado para elif. Na condição das estruturas if aparecem normalmente variáveis.
Fluxograma da instrução if:
Forma geral do if:
if <condição>:
<bloco de comandos>
[elif:
<bloco de comandos>]
[else:
<bloco de comandos>]
No Python a indentação é fundamental, pois identifica o bloco de código a ser executado.
Como se disse anteriormente, tipicamente uma condição é obtida pela relação entre dois operandos, estabelecida por um operador relacional.
Operadores relacionais
Estes operadores comparam valores em ambos os seus lados decidindo qual é a relação entre eles.
Assuma que a variável a contém o valor 10 e a variável b contém o valor 20.
Exemplo:
n=int(input("Digite um número inteiro (positivo ou negativo): "))
if n<0:
n=n*(-1)
print("O módulo do número digitado é",n)
No exemplo anterior, se o número n for negativo (condição n<0) é executada a instrução (bloco de código) n=n*(-1). Assim, sempre que um número é negativo é transformado no seu módulo.
Exemplo:
idade = int(input("Digite a sua idade: "))
if idade>=18:
print("Tem idade para tirar a carta!")
else:
print("Não tem idade para tirar a carta!")
No exemplo anterior, em função da idade lida, é impresso "Tem idade para tirar a carta!", caso a condição idade>=18 se verifique, ou, caso contrário, é impresso "Não tem idade para tirar a carta!".
Exemplo:
a=int(input("Digite o 1º valor: "))
b=int(input("Digite o 2º valor: "))
if a==b:
print("Os dois números são iguais")
elif a>b:
print("O número",a,"é maior do que o número",b)
else:
print("O número",a,"é menor do que o número",b)
O exemplo anterior compara 2 valores (a e b). Começa por avaliar se são iguais (a==b), se a condição é verdadeira, indica que os valores são iguais; caso isso não aconteça, avalia se o 1º valor (a) é superior ao 2º (b), apresentado a mensagem respetiva; se a condição anterior não se verifica (a>b), imprime que o 2º valor é superior ao 1º.
Operadores lógicos
Os operadores lógicos são normalmente usados para relacionar condições e avaliar o seu resultado lógico. Por exemplo, considerando 3 números x, y e z, se estes são iguais, isto é, se x = y e x = z.
Assuma que a variável a contém o valor 10, a variável b contém o valor 20 e a variável c contém o valor 10.
Exemplo:
sexo=input("Digite (F/f)-Feminino, (M/m)-Masculino: ")
if sexo=="M" or sexo=="m":
print("Sexo Masculino")
elif sexo=="F" or sexo=="f":
print("Sexo Feminino")
else:
print("Sexo Inválido")
No exemplo anterior, para cada sexo, são aceitei as duas variantes em letra maiúscula ou minúscula.
Exemplo:
n1=int(input("Digite o 1º número: "))
n2=int(input("Digite o 2º número: "))
n3=int(input("Digite o 3º número: "))
if n1>n2 and n1>n3:
print(n1, "é o maior!")
elif n2>n3:
print(n2, "é o maior!")
else:
print(n3, "é o maior!")
O exemplo anterior, determina o maior de 3 números inteiros e diferentes.