首页 > 解决方案 > 如何让 Ruby 中的输出对偶数和奇数进行排序?

问题描述

我在 Codecademy 得到了这个任务。我想打印偶数。

print "Print any number:"
inpt = gets.chomp

def odd_or_even(num)
  if num % 2 == 0
    print "even"
  else
    print "odd"
  end
end

我没有得到任何输出。是方法的问题,还是我如何写方程?我试过改变两者。

标签: ruby

解决方案


您定义了该方法odd_or_even,但从未真正调用它。

你有两个选择:

  1. 采用更类似于脚本的方法并在不使用方法的情况下处理输入:

    print 'Print any number: '
    input = gets.to_i
    #              ^ convert the input (which is always a string) to an integer
    if input % 2 == 0
      puts 'even'
      # ^ is the same as `print` but adds a newline character at the end
      #   (unless the string ends with a newline character)
    else
      puts 'odd'
    end
    
  2. 如果你想使用一个方法,你必须定义它并调用它:

    def odd_or_even(num)
      if num % 2 == 0
        puts 'even'
      else
        puts 'odd'
      end
    end
    
    print 'Print any number: '
    input = gets.to_i
    odd_or_even(input)
    # ^ method is called here
    

Ruby 还有很多内置助手。您可以使用以下两行实现相同的结果:

print 'Print any number: '
puts gets.to_i.odd? ? 'odd' : 'even'

参考:


推荐阅读