如何在 ruby 中正确使用 def 和 if..else 语句?
How to use correctly def with if..else statements in ruby?
我开始学习 ruby,目前我了解了如何创建 class 对象,以及如何编写非常简单的 IF..ELSE 语句。但是如何用 IF..ELSE 语句正确地写 def 呢?
请帮助建议如何正确编写它?
#I can write simple statement like this
number = 1
if number == 1
number += 1
puts "the number is #{number}"
else
puts "number is more then 2"
end
#But then i want to write something like this
class Maths
def initialize(number_id)
@number = number_id
end
def numberdata()
if @number == 1
@number +=1
puts "the number is #@number"
else
puts "number is greater than 3"
end
end
end
classob5 = Maths.new("1")
classob5.numberdata()
我预计第二部分的输出是 "the number is 2",但实际输出是 "number is greater than 3"
请大家帮忙指点一下怎么写才对。
这里的错误是 Maths
class 在 classob5 = Maths.new("1")
.[=23 行中用 String
而不是 Integer
启动=]
所以,当调用 numberdata()
时,它会将值为“1”(String
) 的 @number
与 1
进行比较,这是一个Integer
。因此,if
条件失败,因为它们不相等,并且您从 else
条件得到结果。
if..else
的用法完全正确。 class 对象只需要实例化为 classob5 = Maths.new(1)
.
我开始学习 ruby,目前我了解了如何创建 class 对象,以及如何编写非常简单的 IF..ELSE 语句。但是如何用 IF..ELSE 语句正确地写 def 呢? 请帮助建议如何正确编写它?
#I can write simple statement like this
number = 1
if number == 1
number += 1
puts "the number is #{number}"
else
puts "number is more then 2"
end
#But then i want to write something like this
class Maths
def initialize(number_id)
@number = number_id
end
def numberdata()
if @number == 1
@number +=1
puts "the number is #@number"
else
puts "number is greater than 3"
end
end
end
classob5 = Maths.new("1")
classob5.numberdata()
我预计第二部分的输出是 "the number is 2",但实际输出是 "number is greater than 3" 请大家帮忙指点一下怎么写才对。
这里的错误是 Maths
class 在 classob5 = Maths.new("1")
.[=23 行中用 String
而不是 Integer
启动=]
所以,当调用 numberdata()
时,它会将值为“1”(String
) 的 @number
与 1
进行比较,这是一个Integer
。因此,if
条件失败,因为它们不相等,并且您从 else
条件得到结果。
if..else
的用法完全正确。 class 对象只需要实例化为 classob5 = Maths.new(1)
.