2017-09-04 72 views
-3

我有这样的代码:Ruby有条件的问题?

def name_of_client 
    puts "Hello sir/madam; please enter your name: " 
    name = gets.chomp.upcase 
    puts "Welcome to the Great Bank, #{name}. Would you like to enter your seriously insecure account? (Y/N)" 
end 

def get_response 
    answer = gets 
    if answer == "Y" || answer == "y" 
    puts 'Sure thing... ' 
    elsif answer == "N" || answer== "n" 
    puts "Logging you out now. " 
    end 
end 

name_of_client 
get_response 

为什么当我输入"Y""N"的字符串不打印?

+2

'answer = gets.chomp' -'gets'返回输入_including EOL separator_。 – mudasobwa

+1

@Amir你已经在'name_of_client'中使用'gets.chomp',所以你显然知道这个方法。 – Stefan

回答

0

getsanswer变量添加新行。改为使用gets.chompgets.strip。在将来,我会推荐使用pry gem,如下所示,它暂停执行,就像调试器在javascript中一样。要安装pry,请打开终端窗口(假设您正在运行linux或macOS)并运行gem install pry。您可以使用它,如下所示。

require "pry" 

def get_response 
    answer = gets.strip 
    binding.pry 
    if answer == "Y" || answer == "y" 
     puts 'Sure thing... ' 
    elsif answer == "N" || answer== "n" 
     puts "Logging you out now. " 

    end 
end 

get_response