Capa
Seções
NOTÍCIAS

DOWNLOAD

ANÁLISES

COMPRAS

BOLETIM

WIRED NEWS

IDG NOW!

PC WORLD

AJUDA

COLUNISTAS


 digite + enter


TUDO SOBRE O IF
Luciano Ramalho

O comando if, que acabamos de conhecer através de um exemplo, é uma peça fundamental da linguagem Python, e de quase todas as linguagens de programação existente. Sua função é descrita como "comando de execução condicional de bloco", ou seja, é um comando que determina a execução ou não de um bloco de comandos, de acordo com uma condição lógica. No exemplo, a condição lógica é "ana < media". O operador < serve para comparar dois números e determinar se o primeiro é menor que o segundo (ele também funciona com strings, mas aí a comparação segue uma regra parecida com a ordem usada dos dicionários). Os operadores de comparação de Python são os mesmos usados em Java e C++:

Operadordescriçãoexemplo
==iguala == b
!=diferentea != b
<menor quea < b
>maior quea > b
>=maior ou igual aa >= b
<=menor ou igual aa <= b

Para sentir o funcionamento desses operadores, abra o interpretador interativo do Python e digite esses testes (não vamos mostrar os resultados aqui; faça você mesmo).

>>> a = 1
>>> b = 2
>>> a == 1
>>> a == 2
>>> a == b
>>> 2 == b
>>> a != b
>>> a != 1
>>> a < b
>>> a >= b

As linhas 1 e 2 não produzem nenhum resultado, como já vimos antes. Elas apenas atribuem valor às variáveis a e b. A linha 3 parece um pouco com a linha 1, mas significa algo completamente diferente. Aqui não acontece nenhuma atribuição, apenas uma comparação, que vai gerar um resultado. Um erro bastante comum cometido por quem está aprendendo Python, C ou Java é usar = no lugar de == ao fazer uma comparação (em Basic, por exemplo, o = é usado nos dois casos). Após cada as linhas a partir da linha 3, o interpretador mostrará um número 1 ou 0, para indicar que a comparação é verdadeira (1) ou falsa (0).

Voltando ao comando if, não existe nenhuma lei que force a presença de um operador de comparação na condição do if. A única coisa que interessa é que a expressão que estiver no lugar da condição será considerada falsa se for igual a 0 (zero), uma string vazia, uma lista vazia ou o valor especial None, sobre o qual voltaremos a falar depois. Qualquer valor que não seja um desses será considerado "verdadeiro", e provocará a execução do bloco subordinado ao if. É por isso que os operadores de comparação retornam 0 ou 1 para representar falso ou verdadeiro.

Não é obrigatória a presença de um bloco else após um if. Mas um else só pode existir após um if. E um if pode conter, no máximo, um else. Existe um terceiro comando de bloco relacionado a esses, chamado elif. Ele corresponde à combinação else-if existente em outras linguagens. Assim como o if, cada elif deve ser acompanhado de uma condição que determinará a execução do bloco subordinado. Como todo comando de bloco, a primeira linha do elif deve ser terminada por um sinal de :.

Um if pode ser seguido de qualquer quantidade de blocos elif, e se houver um bloco else ele deverá vir depois de todos os elif. Veja esse fragmento de código, parte de um jogo simples que criaremos no próximo capítulo:

if vf == 0:
    print 'Alunissagem perfeita!'
elif vf <= 2:
    print 'Alunissagem dentro do padrao.'
elif vf <= 10:
    print 'Alunissagem com avarias leves.'
elif vf <= 20:
    print 'Alunissagem com avarias severas.'
else:
    print 'Modulo lunar destruido no impacto.'

Numa sequencia de if/elif/elif/.../else é garantido que um, e apenas um dos blocos será executado. Fica como desafio para o leitor descobrir como usar o comando elif para corrigir o bug dos gastos iguais, que aparece no programa despdom2.py. A resposta você encontrará no site da Magnet. MAGNET

» Aprenda a programar - capítulo 3 »

Copyright © 1999 MAGNET
Introdução

Rodando programas no IDLE

Navegando pela linha de comando

Testando e ASCII art

Seu primeiro programa interativo

Dissecando o código

Um programa mais esperto

Tudo sobre o if

Copyright© 1996 - 2003 Terra Networks S.A. Todos os direitos reservados. All rights reserved.