2016-03-25 8 views
-2

数字が偶数であり、7で割り切れるかどうかをチェックするためにこのコードを書いています。目的は "& &"または "||"を使用することです。私は偶数と偶数の両方を7で欲しいので、 "& &"となります。これは私のコードです。または2つの引数を持つ構文(||; &&)

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)}" 

これをうまく書き込む方法はありますか?

+0

で割っい7「割り切れることになっ線8の「5で割り切れる」であります"? –

+0

is_even_and_divisible_by_sevenとは何ですか? 'is_even? 'とは何ですか? – sawa

+0

すばやく改善するには、 'is_even == true'を' is_even'に置き換え、 'is_even == false'を'!is_even'に置き換えます。 –

答えて

0

もちろんあります。

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)}" 

または

def is_even_and_divisible_by_seven?(input) 
    [(input % 7).zero?, input.even?] 
end 

input = gets.to_i 
x, y = is_even_and_divisible_by_seven?(input) 
puts "#{input} is#{" not" unless x} divisible by 7 "\ 
    "#{x == y ? "and" : "but"} is#{" not" unless y} even" 
+0

@ sawaさんありがとうございますが、私はコードに&&操作を使用させるように取り組んでいます – Orirere

+0

これは問題ではありません。 – sawa

+0

'&&'はメソッドではないのでオーバーライドできません。 '||'もどちらもできません。 – Aetherus

0

迅速な改善がdiv_by_seven = input % 7 == 0div_by_seven = input % 7を置き換えることであろう。また、is_even == trueis_even、またはinput.even?と置き換え、is_even == false!input.even?と置き換えてください。整数が偶数(2で割った値)であり、7により分割されている場合

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 
関連する問題