プロが教える店舗&オフィスのセキュリティ対策術

Rubyのunlessで適当にプログラムをつくって遊んでいました。

01:a = 10 #aに10を代入
02:b = 20 #bに20を代入
03:
04:unless a > b
05: puts "aはbより大きくない"
06:else
07: puts "aはbより小さくない"
08:end
09:#unless文にはelsif節等がなく、条件項目を増やせないのでaとbの値が同じ場合は
10:#どうしようかと、これをif文で補おうとしました。
11:if a = b
12: puts "aとbは同じです"
13:end
14:
15:puts "a=#{a} b=#{b}"

そもそも、aとbの値が同じでない場合11行目のifが実行されることは無いだろうと思っていたのですが実効結果は

aはbより大きくない
aはbと同じ
a=20 b=20

という結果がでました。実行結果一行目の「aはbより大きくない」と出力されたのはプログラム4行目のunless文の返した結果だろうと理解できましたが、実行結果2行目のif文の結果である「aはbとおなじ」が出力されたのか、実行結果3行目でaとbの変数内を参照しておりますが、ここでどうしてaの値が20に変更されているのか、わかりません。
詳しい方いらっしゃいましたらご教授願います。

A 回答 (1件)

> どうしてaの値が20に変更されているのか



> 11:if a = b
比較の場合は、==じゃなかったかな?
if a == b
    • good
    • 0
この回答へのお礼

あ、すいません。お恥ずかしいミスです。
ご指摘ありがとうございました。(//////)

お礼日時:2014/10/28 20:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!