在用户输入正确的信息之前,如何循环用户输入请求?

 林志岳小行克元 发布于 2023-02-12 19:00

我是一个尝试学习Ruby的初学者.到目前为止,我已经学到了一些比较容易的东西,但我似乎总是试图结合我学到的一些东西.

我想要做的是询问用户一个问题并告诉他们输入1或2.一个简单的if语句让我回答一个选项如果他们输入1,另一个选项如果他们输入2.但是,如果他们输入完全不同的东西,如不同的数字,字符串等,我如何提示他们再次尝试并让它循环回到原始问题?

到目前为止我看到的是这样的.

prompt = "> " 
puts "Question asking for 1 or 2." 
print prompt
user_input = gets.chomp.to_i

if user_input == 1    
   puts "One response." 
elsif user_input == 2   
   puts "Second response." 
else    
   puts "Please enter a 1 or a 2." 
end

这就是我被困住的地方.如何让它回到"要求1或2的问题".直到用户输入1或2?我知道它可能是某种类型的循环,但我似乎无法弄清楚使用哪种类型以及如何在获得所需输入之前重复(如果需要)合并请求用户输入.任何帮助将不胜感激.谢谢.

1 个回答
  • 你是正确的,你需要循环运行你的代码.使用while循环gets.chomp作为条件,您可以继续询问用户输入,直到您决定得到您想要的为止.

    在这种情况下,您需要验证问题的答案并再次询问它是否无效.你不需要改变很多,除了确保你在答案是正确的时候突破循环.如果答案错误,请再次打印提示.

    这是一个稍微重构的版本,case而是使用它,但它显示了您需要做的事情.毫无疑问,这是一种更清洁的方式......

    prompt = "> "
    puts "Question asking for 1 or 2."
    print prompt
    
    while user_input = gets.chomp # loop while getting user input
      case user_input
      when "1"
        puts "First response"
        break # make sure to break so you don't ask again
      when "2"
        puts "Second response"
        break # and again
      else
        puts "Please select either 1 or 2"
        print prompt # print the prompt, so the user knows to re-enter input
      end
    end
    

    2023-02-12 19:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有