首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何构建简单的基于菜单的控制台应用程序?

如何构建简单的基于菜单的控制台应用程序?
EN

Stack Overflow用户
提问于 2014-10-20 11:21:59
回答 2查看 1.4K关注 0票数 0

我已经一个星期没学Ruby了。这是一种很棒的语言,我很喜欢它。

我还是个菜鸟。以下是一个问题:

我希望Ruby中的控制台应用程序可以让用户按下Num键来选择选项,比如一个有五个功能的程序。前四个函数用于SUM,SUB,MUL和DIV,最后一个是返回主菜单。

我试图编写代码,但失败了。以下是代码:

代码语言:javascript
复制
puts "Choose Option(Press the num key)\n
  1. For SUM\n
  2. For SUB\n
  3. For MUL\n
  4. For DIV\n
  5. For Main Menu"

$x = 22
$y = 32

def gloabl_f(n) # <= global function start here

  def sum(x,y) # <= SUM function
    return x+y
  end

  def sub(x,y) # <= SUB function
    return x-y
  end

  def mul(x,y) # <= MUL function
    return x*y
  end 

  def div(x,y) # <= DIV function
    return x/y
  end

  def Main_Menu()
    return  puts "Choose Option(Press the num key)\n
  1. For SUM\n
  2. For SUB\n
  3. For MUL\n
  4. For DIV\n
  5. For Main Menu"
  end

  n = gets.to_i
  if n == 1
    puts sum(22,32)
  end
end # <= global function end here

基本上,我希望用户首先输入两个数字,然后通过点击与上述函数相关的数字键,可以选择1,2,3,4,5的选项。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-20 11:41:58

几个一般要点

  • 定义函数内部的方法不是很习惯的做法
  • 您从不调用gloabl_fMain_Menu,只需定义它们。

下面是一个示例解决方案:

代码语言:javascript
复制
def get_numbers
  puts "First number:"
  x = gets.chomp.to_i
  puts "Second number:"
  y = gets.chomp.to_i
  yield(x,y)
end

def sum(x,y)
  x + y
end

puts "Choose Option:
1. For SUM
2. For SUB
3. For MUL
4. For DIV
5. Exit
"

n = gets.chomp.to_i

case n
  when 1
    get_numbers do |x,y|
      puts "Sum: #{sum(x,y)}"
    end
  when 2
    # code
  when 3
    # code
  when 4
    # code
  else 
    puts "Exiting"
end

我把其他的选项留给你去实现。

票数 3
EN

Stack Overflow用户

发布于 2014-10-20 11:32:00

代码语言:javascript
复制
puts "Choose Option(Press the num key)\n
1. For SUM\n
2. For SUB\n
3. For MUL\n
4. For DIV\n
5. For Main Menu"
x = 22
y = 32

n = gets.chomp.to_i
if n == 1
    puts x + y
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26464483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档