segunda-feira, 24 de dezembro de 2012

Exercitando com Ruby Parte 2 (Operadores condicionais, Operadores lógicos, Laços de repetição)

Ruby é uma linguagem multiparadigma, com isso podemos desenvolver um código de diferentes formas. Hoje você aprende de uma forma, e amanhã descobre outra forma ainda melhor, principalmente se for um iniciante na linguagem, onde tudo é novidade. Irei postar no tutorial o básico, deixando de tarefa sentir-se livre em buscar mais novidades.

Lembrando que agora vai ser interessante trabalhar com uma IDE para escrever o código e se tornar mais produtivo. Sinta-se livre para escolher! existem muitas ferramentas boas e gratuitas na internet como Notepad++, Geany, NetBeans, Eclipse entre outras...se você chegou até aqui deve saber muito bem, com o que trabalhar para o seu desenvolvimento, que não é o caso de nosso objetivo essa discussão.
  • Primeiro, antes de tudo crie um arquivo dentro de seu diretório favorito onde iremos trabalhar (ex: C:\testes\codigo.rb), lembrando que a extensão de Ruby é .rb;
  • Para executar o código abra o terminal de comando e vá para o diretório onde definiu a pasta e execute da seguinte forma "ruby codigo.rb";

Operadores condicionais
O Ruby trabalha com a instrução end no final de seu código.
  1. Condição IF: como todos já sabem a estrutura básica de um IF é  { se - então - senão}. O antigo else if agora passou a ser chamado de elsif:
    z = 77
    if z > 90
     puts 'maior que 90'
    elsif z <= 90 and z >=50
     puts 'menor que 90 e maior que 50'
    else
     puts 'menor que 50'
    end
    =>menor que 90 e maior que 50
  2. Outra  forma de IF:
     
    z = 100
    puts "maior que 10" if z > 10
    =>maior que 10
    
    
  3. Condição CASE: no operador condicional CASE usarei uma função chamada ranges, ela funciona para você especificar um valor entre intervalos (EX: a..z, 1..10), irei abordar sobre o tema mais futuramente.
     
    z = 7;
    case z
     when 1..5
      puts "de 1 a 5"
     when 6..10
      puts "de 6 a 10"
     else
      puts "seila"
    end
    =>de 6 a 10
    
    
  4. Condição UNLESS: como diria um IF ao contrário, uma condição negativa. (como ler isso? EX: tem mais espaço no trem AO MENOS QUE o numero de pessoas não ultrapasse 100), sei que parece confuso, não gostaria de utilizar isso, pois o IF é mais "humano-entendível".
     
    pessoas = 50
    puts "tem mais espaco no trem!" unless pessoas > 100
    =>tem mais espaco no trem!
    
    

Operadores lógicos
Os operadores de lógica não mudaram, continuam o mesmo para quem trabalhou em C, PHP

Operador Descrição
or, || Verdadeiro se A ou B são verdadeiros.
and, && Verdadeiro se tanto A quanto B são verdadeiros.
not, ! Verdadeiro se A não é verdadeiro


Laços de repetição
Nunca vi em nenhuma outra linguagem que conheço, existir tantas formas de laços de repetição, vou postar todas que conheço pois isso é bem útil:
  1. FOR: laço de repetição de valor A até B usango ranges;
  2.  
    for z in (1..5)  
     puts z
    end
    =>1
    =>2
    =>3
    =>4
    =>5
    
    
  3. FOR com break: sai da execução do script
  4.  
    x=10
    for z in (1..x)
     break if z == 4
     puts z
    end
    =>1
    =>2
    =>3
    
    
  5. FOR com next: pula para próxima condição, e anula a determinada condição
  6.  
    for z in (1..6)
     next if z == 3
     puts z
    end
    =>1
    =>2
    =>4
    =>5
    =>6
    
    
  7. FOR com redo: repete o laço caso tenha encontrado algo;
    for z in (1..9)
     redo if z == 5
     puts z
    end
    =>1
    =>2
    =>3
    =>4
  8. UNTIL: faça até que;
  9.  
    z = 1;
    until z==4
     puts z
     z+=1
    end
    =>1
    =>2
    =>3
    
    
  10. WHILE: faça enquanto; note que estou usando uma concatenação para a variável 'z' dentro do puts. Lembre-se que todo bloco de códigos fecha com end;
    z = 1;
    while z < 5
     puts "valor #{z}"
     z+=1
    end
    =>valor 1
    =>valor 2
    =>valor 3
    =>valor 4
  11. LOOP: poderia colocar loop do e fechar com end, mas a melhor forma ficaria assim ;
    v = 1;
    loop {
     break if v > 4
     puts v
     v+=1
    }
    =>valor 1
    =>valor 2
    =>valor 3
    =>valor 4
  12. BEGIN: é um bloco com um laço, ele pode ser usado tanto com um while como um until:
    z = 0
    begin
     puts z
     z += 1
    end until z == 4
    =>valor 1
    =>valor 2
    =>valor 3
  13. TIMES: 
    z = 1
    4.times do 
     puts z
     z+=1 
    end
    =>valor 1
    =>valor 2
    =>valor 3
    =>valor 4
  14. UPTO:
    1.upto(4) do |valor|
     puts valor
    end
    =>valor 1
    =>valor 2
    =>valor 3
    =>valor 4
  15. UPTO mais compacto (isso é genial!!):
    1.upto(4) { |valor| puts valor}
    =>valor 1
    =>valor 2
    =>valor 3
    =>valor 4
autor: Darlan Dieterich

Nenhum comentário:

Postar um comentário

Deixe aqui seu comentário