Ruby 带两个参数的Or和语法(| |&&;)
我写这段代码是为了检查一个数字是否是偶数,是否可以被7整除。目的是使用“&&”或“| |”。因为我想要偶数和可被7整除的数,所以它将是“&&”。这是我的代码Ruby 带两个参数的Or和语法(| |&&;),ruby,Ruby,我写这段代码是为了检查一个数字是否是偶数,是否可以被7整除。目的是使用“&&”或“| |”。因为我想要偶数和可被7整除的数,所以它将是“&&”。这是我的代码 input = gets.to_i def divisible_by_seven?(input) div_by_seven = input % 7 is_even = is_even?(input) if div_by_seven == 0 && is_even == true
input = gets.to_i
def divisible_by_seven?(input)
div_by_seven = input % 7
is_even = is_even?(input)
if div_by_seven == 0 && is_even == true
return "is divisible by 7 and is even"
elsif div_by_seven == 0 && is_even == false
return "is divisible by 7 but is not even"
elsif div_by_seven != 0 && is_even == true
return "is not divisible by 7 but is even"
else
return "is not divisible by 7 and is not even"
end
end
puts "#{input} #{is_even_and_divisible_by_seven?(input)}"
有没有更好的方法写这篇文章?当然有
def is_even_and_divisible_by_seven?(input)
case [(input % 7).zero?, input.even?]
when [true, true] then "is divisible by 7 and is even"
when [true, false] then "is divisible by 7 but is not even"
when [false, true] then "is not divisible by 7 but is even"
when [false, false] then "is not divisible by 7 and is not even"
end
input = gets.to_i
puts "#{input} #{is_even_and_divisible_by_seven?(input)}"
或
一个快速的改进是用
div\u by\u seven=input%7==0
替换div\u by\u seven=input%7==0
。另外,用是偶数
替换是偶数
,或者用替换输入。偶数?
,是偶数==false
!输入。偶数?
def divisible_by_seven_and_even?(input)
div_by_seven = input % 7 == 0
if div_by_seven && input.even?
"is divisible by 7 and is even"
elsif div_by_seven && !input.even?
"is divisible by 7 but is not even"
elsif !div_by_seven && input.even?
"is not divisible by 7 but is even"
else
"is not divisible by 7 and is not even"
end
end
如果一个整数是偶数(除以2)并除以7,那么它就是除以14。第8行的“可被5整除”应该是“可被7整除”?什么是“偶数”和“可被7整除”?什么是
是偶数?
?一个快速的改进是将是偶数==true
替换为是偶数
,将是偶数==false
替换为!甚至是
。谢谢@sawa,但我正在努力使代码使用&操作,这不是问题。&&
不能被重写,因为它不是一个方法。也不能|
。你好@sawa。这是有效的(但没有利用&&-I在标题和我的解决方案中都有&&I)。我也可以在原始请求中指定def是_偶数且_可被_七整除?(输入)[(输入%7).zero?,input.偶数?]end input=get.to _ix,y=is _偶数且_可被_七整除?(输入)put“#{input}是{”not“{x==y?”和“:”但是“}是{”不是“除非y}偶数”
def divisible_by_seven_and_even?(input)
div_by_seven = input % 7 == 0
if div_by_seven && input.even?
"is divisible by 7 and is even"
elsif div_by_seven && !input.even?
"is divisible by 7 but is not even"
elsif !div_by_seven && input.even?
"is not divisible by 7 but is even"
else
"is not divisible by 7 and is not even"
end
end