#はじめに
こちらの記事は、私がProgateでRubyをしている時につまずいたり疑問に思ったりしたことをまとめた備忘録記事となっております。
初めての記事なのでわかりづらい点はご容赦ください。
誤りがある場合はご指摘お願いします。
Progate RubyⅠの比較演算子の内容にあたります。
初心者の方に参考になるよう基礎内容をおさえながら疑問点についてまとめておりますので、よかったらご一読ください。
#1. 比較演算子について
まず、比較演算子について説明します。
比較演算子は大小を比べる比較演算子と等しさを比べる比較演算子があります。
ある条件式において、大小を比べたり等しいかどうかを判断するときに使います。
文字だけでは意味不明ですね。
それぞれについて、以下で具体的に述べます。
##1-1. 大小を比べる比較演算子
はじめに大小比較演算子について説明します。
『 < 』や 『 > 』といった大きさを比べる記号を使います。
左と右の値の大きさが記号通りであればtrueを返し、誤っていればfalseを返します。
a < b #aの方がbより小さいとき true
a <= b #aの方がbより小さいとき または 等しいとき true
a > b #aの方がbより大きいとき true
a >= b #aの方がbより大きいとき または 等しいとき true
【例】
score = 80
puts score < 40 false
puts score <= 80 true
puts score > 80 false
puts score >= 90 false
##1-2. 等しいかを比べる比較演算子
等しいかを比べる比較演算子は『 == 』や『 != 』を使って左と右の値が等しいかを調べます。
等しければtrue、異なっていればfalseを返します。
a == b #aとbが等しいとき true
a != b #aとbが異なるとき true
【例】
score = 80
puts score == 70 false
puts score != 70 true
name = "hanako"
puts name == "hanako" true
puts name != "hanako" false
以上が比較演算子の基本です。
続いて複数の条件式における比較演算子についておさえます。
#2. かつ(&&)または(||)における比較演算子
複数の条件を組み合わせる表記方法で、かつ『 && 』、または『 || 』を用います。
それぞれについて例を挙げ、具体的に述べていきます。
##2-1.かつ(&&)における比較演算子
**「条件1 && 条件2」は、「条件1かつ条件2」**という意味で、複数の条件が全て正しければtrueを返し、一つでも違っていればfalseを返します。
【例】
x = 30
x > 10 && x < 20 true
x > 10 && x < 35 false
x > 40 && x < 35 false
x > 10 && x < 40 true
##2-2.または(||)における比較演算子
**「条件1 || 条件2」は、「条件1または条件2」**という意味で、複数の条件のうち1つでも正しければtrueを返し、全て違っていればfalseを返します。
【例】
x = 30
x > 10 || x < 20 true
x > 10 || x < 35 true
x > 40 || x < 35 true
x > 40 || x < 20 false
以上を踏まえ、以下から私が疑問に思ったところを述べていきます。
#3-1.疑問①比較演算子「 <= 」の位置を反転させたらどうなる?
「条件1&&条件2」の際に、**「 >= 」の表記を「 => 」**というように記号の位置を反転させたらどうなるのかやってみました。
基本的には「score >= 95」のように表記しますが、「score => 95」のように表記したらどうなるでしょうか。
【scoreの値が「95以上かつ99以下」の場合】
score = 96
if score => 95 && score <= 99
puts "高得点です! 次は満点を目指しましょう。"
end
#syntax errorと表示される。
結果
記号を反転させるとエラーになってしまいました。
数学では「 => 」という表記がありますが、プログラミングでは使えないことがわかりました。
#3-2.疑問②変数の位置を一致させなかったらどうなる?
今までの内容で散々出てきてましたが、改めて変数について説明します。
変数とは、**値や文字列を代入しておく箱のようなもの**です。
例えば、score = 1 は、「score」という名前をつけた変数に数字の「1」を代入しています。
「score <= 5」は、「変数scoreが5より小さいとき または 5と等しいとき true を返す」という意味になります。
基本的には「score <= 95」のように**「変数 記号 数字」**という順で書かれることが多いのですが、それを「95 >= score」のように**「数字 記号 変数」**にしたらどうなるでしょうか。
【scoreの値が「95以上かつ99以下」の場合】
score = 96
if 95 >= score && score <= 99
puts "高得点です! 次は満点を目指しましょう。"
end
#高得点です! 次は満点を目指しましょう。 と表示される。
結果
いろいろな本やサイトを見ても、**「変数 記号 数字」の順で書かれていることが多いですが、実際に打ち込んでみると「数字 記号 変数」**でも表示されることがわかりました。
(今回の場合は、95 >= scoreの部分です。)
ただし、記号は「 <= 」または「 >= 」と**「 = 」の部分は「 < 」「 > 」の記号の後ろになる**ので注意してください。
**「数字 記号 変数」**でもエラーにならない理由はわからなかったので、どなたかご存知であればご教授ください。
#おわりに
疑問点は打ち間違えてエラーになったり、ならなかったりしたときに思い至ったものです。
初心者の皆さん、記号の打ち間違えでエラーになってしまうのでお気をつけください。
初めてのQiita記事作成のため、これだけの記事なのに書き方について調べたり、記事を装飾するのに時間がかかりすぎたのが反省です。