2013-04-29 2 views
0

Я только учусь Руби, и я немного запутался в следующем:Рубин Хотя выпуск

#!/usr/bin/env ruby 

while line = gets 
    if line == 'x' 
    puts 'You pressed x' 
    end 
end 

Это, кажется, не печатать ничего, если х вводится. Правильно ли я делаю сравнение?

ответ

5

gets возвращает введенный текст вместе с разрывом линии. Попробуйте это:

while line = gets.chomp 
    # the rest is the same 
end 

String#chomp удаляет такие символы (\n, \r, \r\n) из строки.

+0

Ах, что не было упомянуто в книге, которую я читал (Pragmatic Ruby 1.9). Спасибо. –

1

При вводе x затем нажмите enter вы добавляете \n и/или \r.

Чтобы исправить это, вы должны сравнить

if line.chomp == 'x'

Ваш цикл должен работать и распечатать «Вы нажали х»

Смежные вопросы