Iniciando inserção de dados
Vamos fazer o programa saudar o usuário. Vamos perguntar o nome a ele ou ela, e então dizer "hello". Nós usamos o método gets para possibilitar ao usuário inserir dados (como string).
Salve e execute-o:
O que aconteceu? Porque ele foi para a próxima linha?
Ele pulou para a próxima linha porque você digitou um caracter de nova linha. Ou seja, porque você pressionou Enter.
Isso vai fazer mais sentido se nós voltarmos ao irb. Inicie o irb e digite a linha do gets. Quando o computador aguardar, digite seu nome. Olhe tentamente o que acontece:
O que é "\n" no fim da string?
O "\n" representa um caracter de nova-linha. Este é um caracter que seu teclado manda quando você pressiona a tecla Enter.
|
Dica: Viu como nós usamos o irb para visualizar o que
aconteceu? Sempre que algo não satisfazer sua expetativa, é uma boa idéia testar no irb. |
Acabando com a nova linha!
Ok, nós sabemos o que está errado. Mas como podemos acabar com essa nova linha?
As strings Rubycontém o método String#chomp para precisamente este propósito.Vamos voltar ao irb para vermos isso em ação.
Lindo! O método String#chomp retornou a string, mas
sem a terminação da nova linha. Então agora
nós podemos escrever:
Observe que name continua contando a nova linha. É o chomped_name que procuramos. Mas porque ter outra variável? É melhor escrever:
>> name = name.chomp
|
Agora name teve seu caractere de nova linha removida.
De volta ao nosso programa
Agora podemos voltar ao nosso programa e resolver o problema.
Agora, aqui estão algumas coisas sobre Ruby:
1- chomp é um método de strings (String#chomp).
2-
gets retorna uma string.
Por isso, você pode escrever gets.chomp para fazer String#chomp ser chamado junto com o que gets retorna. Em outras palavras, nós podemos escrever:
Agora, isto não é lindo? digite isso e execute:
Exercícios
1- Escreva um programa que pega duas palavras e as imprime em ordem oposta na tela.
2- Escreva um programa que comporte-se como esse:
Assume-se que o ano do usuário é simplesmente o ano corrente menos a idade. Lembre de String#to_i
3- Escreva um programa que pergunte um número e uma sentença e imprima a sentença em ordem inversa na quantidade de vezes informada. Assim:
Existe mais de uma forma de se fazer este programa. Use a que você desejar.
4- O que você acha que esta linha faz?
number = gets.chomp.to_i
|
Teste no irb.
5- Escreva um programa que calcule o fatorial do número que o usuário digita. Ele deve ser similar a isso: