使用Interactive Ruby程序,当我输入内容时关闭

时间:2018-12-15 00:41:46

标签: ruby

我遵循了一个例子来开始学习Ruby。以下代码在我的文本编辑器(Visual Studio Code)中起作用。但是当我使用交互式ruby程序打开文件时。它似乎不起作用。

puts "Hello there! Please enter a number to square: "
number = gets.chomp.to_i

def squared(number)
        squared = number * number
        return squared.to_s
end

puts "Your number is: " + number.to_s
puts "Your number squared is: " + square(number)

它会打印出首字母“你好!请输入一个数字以平方:” 但是,一旦我输入数字并按Enter,程序就会突然关闭。

1 个答案:

答案 0 :(得分:1)

问题是您双击example.rb文件,该文件在cmd.exe中打开,执行完example.rb后自动关闭。这是Windows的正常行为:cmd.exe在运行任何应用程序调用后都会自动关闭。

您要做的是手动打开命令提示符(cmd.exe),然后使用ruby example.rb运行您的应用程序。您的应用程序完成运行后,这将使cmd.exe保持打开状态,因为您的应用程序未调用cmd.exe;它是由您手动调用的。

这将使您可以在应用程序完成运行后查看Your number is:的输出。双击example.rb时,仍会打印此输出,但是窗口关闭得如此之快以至于看不到它。

此外,您的应用程序中包含一些错误。具体来说,您应该在致电square(number)时尝试致电squared(number)

这是您的代码被清除了一点:

puts 'Hello there! Please enter a number to square: '
number = gets.chomp.to_i

def squared(number)
  number * number
end

puts "Your number is: #{number}"
puts "Your number squared is: #{squared(number)}"

请注意,对于不包含string interpolation的字符串,对squared方法使用implicit return,对于puts调用则使用字符串内插,请使用单引号。