terça-feira, 7 de outubro de 2008

[Unit-1 | Lição-8] Estruturas Condicionais

Como foi dito na lição anterior existem 4 formas de se criar condições, qualquer uma delas poderá ser usada para qualquer situação, porém em alguns casos será muito mais simples optar por um dos tipos de condições a um outro tipo.

Vamos começar pela forma mais simples:
If
If é a estrutura condicional mais utilizada no RGSS por ser simples e, ao mesmo tempo, satisfaser a necessidade de criar condições mais elaboradas. Para utilizá-la, basta escrever a palavra 'if', seguida de uma expressão condicional(explicado na lição anterior); e depois utilizar a palavra 'end' para definir o fim da condição.
Exemplo:
if variável == 5
print "sim"
end

Neste caso, será exibisdo um "sim" na tela se o valor de 'variável' for 5,
caso contrário 'print "sim"' será ignorado.
É claro que qualquer um dos
outros operadores poderiams er utilizados no lugar de '=='.

Existem algums métodos utilizados para tornar a condição mais específica.
Para isto são utilizados as palavras 'and
' e 'or'.

As palavras 'and' e 'or' significam "e" e "ou", ela são utilizadas separando
duas expressões condicionais para definir se alguma delas está verdadeira
ou se as duas estão.

Exemplo:
if var1 == 5 and var2 == 10
print "sim"
end

No exemplo acima, só aparecerá a mensagem "sim" caso a variável 'car1'
seja igual à 5 e a variável 'var2' seja igual à 10. Note que nada lhe
impede de utilizar uma mesma variável numa mesma condição.

if var > 0 and var < 6
print "sim"
end

Já no exemplo acima, a mensagem só aparecerá caso a variável 'var'
seja maior que 0 e menor que 6, ou seja, um dos valores: 1, 2, 3, 4 ou 5.
A palavra 'or'(ou) é utilizada da mesma forma que 'and', porém expressa
a condição de uma das duas condições ser verdadeira, ao contrário de
'and' que expressa a condição de as duas expressões serem verdadeiras.

Exemplo:
if var1 == 5 or var2 == 10
print "sim"
end

Neste caso, para que a mensagem seja exibida, não é necessário que
'var2' seja 10 se 'var1' for 5, e vice-versa. Voçê também pode utilizar
'or' e 'and' numa mesma condição quantas veses quiser.
Alguns exemplos simples:

if var1 == 0 and var2 == 5 and var3 == 10 and var4 == 20

if var1 == 0 or var2 == 5 or var3 == 10 or var4 == 20

if var1 == 0 and var2 == 5 or var3 == 10 and var4 == 20

No último dos três exemplos acima foi utilizado tanto 'or' quanto 'and',
neste caso, 'and' terá prioridade, logo, será verificado primeiro as
expressões:
"
var1 == 0 and var2 == 5" e "var3 == 10 and var4 == 20",
e somente depois será verificado se uma destas duas expressões for
verdadeira ocorrerá a condição.
É um tanto complicado quando se está usando tantas expressões
condicionais numa só condição, mas casos como este não são tão
comums de ocorrer. Você também pode utilizar parênteses para melhor
definir a condição da forma que quiser.
Exemplo:
if var1 == 0 and (var2 == 5 or var3 == 10)
Neste caso, a expressão será verdadeira caso 'var1' seja 0 e 'var2' for 5
ou 'var3' for 10. Cuidado para não confundir as expressões em casos
como este.
Note que se os parênteses não existicem no exemplo acima, a condição
passaria a ser de ('var1' ser 0 e 'var2' ser 5) ou 'var3' ser 10.
OBS1: Nos exemplos acima eu só utilizei números nas condições,
mas também podem ser utilizados outros tipos de valores, exemplo:

if var1 == [0, 1, 2, 3] and var1 == "=)"
end

OBS2: Vale a pena lembrar que o operador '==' verifica se um valor é
exatamente igual à outro, logo, pequenos detlahes fasem toda a diferença.

OBS3: Os operadores '>', '<', '>=' e '<=' verificam se um número é maior/menor(ou igual) a um outro valor, logo não podem ser utilizados com valores que não sejam números, exemplo:
if [0, 1, 2, 3] > "=)"
end


No exemplo acima ocorrerá um erro, pois nem Arrays nem Strings podem
ser usadas com operadores númericos.


Unless
Não há muito o que falar de unless, já que a condição unless é utilizada
exatamente igual à condição 'if', porém, a condição só será cumprida se
o retorno for falso.
Exemplo:
unless 2 == 2
print "sim"
end

No caso acima será verificado se 2 é igual a 2, logo haverá o retorno
verdadeio, porém, não será exibida a mensagem "sim", pois em unless
é verificado se o retorno é 'false', ao contrário de 'if' que verifica se o
retorno é 'true'.
OBS: Já que unless é o contrário de if, os dois exemplos de condições
abaixo seriam cumpridos:
# se variável for igual a outra veriável

if variável == outra_variável

# se a variável não for diferente da outra variável

unless variável != outra_variável

2 comentários:

Anônimo disse...

mto boa as aulas, pelo q percebi unless 2 == 2
é a mesma coisa q
if 2 != 2

praticamente unless é inutil
to certo ?

DarkChocobo disse...

exatamente!^^
unless e if são a mesma coisa, mas invertidos, você pode usar qualquer um que preferir. unless existe para deixar a programação mais simples em alguns casos.