conteúdo do for que termina quando usamos a palavra reservada end. O detalhe
mais importante do código acima, é (1..100), que cria um range de número de 1
até 100, que é exatamente o número de vezes
que desejamos executar a impressão de
um número.
While
Podemos utilizar iterar de 1 até 100 imprimindo cada um dos números utilizando
a estrutura de repetição while, que assim como em linguagens tradicionais como
Java e C, executando um bloco de código até que uma determinada condição seja
falsa (conteúdo que também é delimitado pela palavra reservada end).
22
Casa do Código
Capítulo 2. Seu primeiro passo no Ruby: convenções e as diferentes estruturas. . .
numero = 0
while numero <= 100
puts "Numero: #{numero}"
numero += 1
end
Quando for executado o código acima executará a impressão da mensagem Nu-
mero: x imprimindo de 1 até 100, quando a condição do while será false.
Until
Ao contrário do while que termina sua execução quando uma condição falsa
seja alcançada, a estrutura de repetição until executa um determinado bloco de
código até que uma condição verdadeira seja encontrada:
numero = 0
until numero == 100
puts "Numero: #{numero}"
numero += 1
end
A diferença é que o código acima executará a impressão da mensagem Numero:
x de 1 até 100, até que o valor da variável numero seja 100 e ocorra o término na
execução do until.
2.9
As outras formas de declarar Strings
Aprendemos e discutimos duas formas de declarar String:
aspas_simples = 'linguagem_ruby'
aspas_duplas = "linguagem_ruby"
Mas como proceder caso precisemos declarar String com aspas duplas e aspas
simples dentro, por exemplo: "Isso é normal e útil no mundo Ruby. Nenhuma das duas abordagens anterior resolvem o problema sem o uso do caractere de escape \.
string_especial_usando_aspas_simples =
'Isso é "normal" e \'util\' no mundo Ruby'
string_especial_usando_aspas_duplas =
"Isso é \"normal\" e 'util' no mundo Ruby"
23
2.9. As outras formas de declarar Strings
Casa do Código
puts string_especial_usando_aspas_simples
# => 'Isso é "normal" e \'util\' em Ruby'
puts string_especial_usando_aspas_duplas
# => "Isso é \"normal\" e 'util' em Ruby"
Existe uma notação na linguagem Ruby que foi inspirada no Perl que permite
declararmos este tipo de String especial. Basta declará-la da seguinte forma:
string_especial = %{Isso é "normal" e 'util' no mundo Ruby}
puts string_especial
# => "Isso é \"normal\" e 'util' em Ruby"
Na verdade qualquer caractere não alfa numérico pode ser usado após o
% ,
por exemplo:
string_especial = %[Isso é "normal" e 'util' no mundo Ruby]
puts string_especial
# => "Isso é \"normal\" e 'util' em Ruby"
string_especial = %?Isso é "normal" e 'util' no mundo Ruby?
puts string_especial
# => "Isso é \"normal\" e 'util' em Ruby"
string_especial = %~Isso é "normal" e 'util' no mundo Ruby~
puts string_especial
# => "Isso é \"normal\" e 'util' em Ruby"
Obviamente o caractere utilizado para delimitar a String deve ser escapado
com \ caso apareça dentro do texto que está sendo declarado:
string_especial = %{Isso é "normal" e \{util no mundo Ruby}
puts string_especial
# => "Isso é \"normal\" e {util em Ruby"
Entretanto se você utilizar como delimitador os caracteres (parenteses),
[colchetes], {chaves} ou <menor e maior> eles podem aparecer dentro
da String sem serem escapados caso sejam usados em pares (diferentemente do
exemplo dado anteriormente):
string_especial = %{Isso é "normal" e {util} no mundo Ruby}
puts string_especial
# "Isso é \"normal\" e {util} em Ruby"
24
Casa do Código
Capítulo 2. Seu primeiro passo no Ruby: convenções e as diferentes estruturas. . .
Esta forma de declaração de String possui algumas variações, que podem, por
exemplo, adicionar a capacidade de interpolar variáveis.
%q : Não permite interpolação;
%Q : Permite interpolação.
Existem algumas outras variações que vamos aprender ao longo do livro. Esta
maneira de declarar String permite que sejam elas também criadas com múltiplas
linhas:
string_especial = %{Isso é "normal" e {util} no mundo Ruby
e a partir de agora veremos a 'todo' momento}
puts string_especial
Repare
que uma quebra de linha (\n) é inserida exatamente no lugar onde que-
bramos a linha em nosso código. Essa característica é muito útil quando precisamos
criar String grandes e precisamos deixá-las mais legíveis.
2.10
Próximos passos
Neste capítulo aprendemos boas convenções de código nas declarações de variáveis,
alguns outros tipos de dados existentes na linguagem Ruby, estruturas de controle
como if e unless e as melhores formas de utilizá-las, a fim de diminuir ruídos na
sintaxe e as conhecidas e úteis estruturas de repetição for, while e until.
Aprendemos também as diferentes formas de declararmos String, com varia-
ções e suporte a múltiplas linhas. O interessante valor nil que será muito utilizado
durante todo o restante do livro.
O importante é lembrar que estes conceitos são a base que precisamos para seguir
em frente e aprendermos recursos mais avançados da linguagem.