※ ChatGPTを利用し、要約された質問です(原文:rubyのunlessで遊んでいたら)
Rubyのunlessで遊んでいたら
このQ&Aのポイント
Rubyのunlessで適当にプログラムをつくって遊んでいました。
unless文にはelsif節等がなく、条件項目を増やせないのでaとbの値が同じ場合はどうしようかと、これをif文で補おうとしました。
しかし、実行結果でaとbの値が同じになっているのか、理解できません。
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に変更されているのか、わかりません。
詳しい方いらっしゃいましたらご教授願います。
お礼
あ、すいません。お恥ずかしいミスです。 ご指摘ありがとうございました。(//////)