PHP・MySQL入門

ゼロからはじめるPHP・MySQL入門 第7回「比較について」

ここまでの記事はこちら
 

今回はプログラミングでとても大切な「比較」についてです。

はじめに比較記号の意味と簡単な条件式の書き方を紹介して、次回具体的な使い方を紹介していきます。
 

比較とは

比較とは、文字通り2つの値を「比べる」ときに使います。

例えば

  • A と B は等しい
  • B は C より大きい
  • A と B が等しい、かつ、B は C より大きい

など、算数では等式・不等式として勉強したものです。

「比較」はプログラミングで本当によく使うことになる、とても重要な考え方です。
 

具体的にどんな時に使うのかというと

  • 名前が入力されているか
  • 入力可能文字数を超えていないか
  • メールアドレスが正しい形式か
  • 今日の日付が期限日を過ぎていないか
  • データが空っぽではないか

など「条件を満たしているか」を判定するときに使います。

 
 

比較記号

使用する比較記号は6種類です。

  1. ==
  2. !=
  3. >
  4. <
  5. >=
  6. <=

 

ここからは、それぞれの比較記号を使った条件式を紹介していきます。
例題と練習問題も用意しているので、順番に進めてみてください????

 

① ==(等しい)

== は「等しい・イコール」という意味です。

変数を定義するときは = を1つ使いましたが、比較の場合は = を2つ繋げることで == 等しいという意味になります。

$num = 2;  // 変数 $num に 2 を代入
$num == 2  // 変数 $num は 2 と等しい

*条件式は変数のように単独で使うことはないので、最後に ;(セミコロン)はつけていません。詳しい書き方については次回紹介します。
 
 

== を使って文字列を比較することもできます。

「$name は山田である」という条件は

$name == "山田"

と書くことができます。
 

同じように「$name が空っぽ」という条件は

$name == ""

と書くことができます。
 
 

例題

「$num は 555 と等しい」という条件式を書いてください。

答えを確認する$num == 555

 
 

② !=(等しくない)

== は等しいという意味でしたが、先頭のイコールを ! に変えると !=「等しくない」という意味になります。

「$num は 6 ではない」という条件は

$num != 6

と書くことができます。
 

「$name は山田ではない」という条件は

$name != "山田"

と書くことができます。
 

「$name は空っぽではない」という条件も

$name != "" 

と書くことができます。
 
 

例題

「$name は佐藤ではない」という条件式を書いてください。

答えを確認する$name != "佐藤"

 
 

③ >(より大きい)

> は「~より大きい」という意味です。

A > B と書くと「A は B より大きい」となります。

数字にすると 6 > 3 「6 は 3 より大きい」です。

6 > 3

 
 

例題

「$num は 100 より大きい」という条件式を書いてください。

答えを確認する$num > 100

 
 

④ <(より小さい)

< は「~より小さい・未満」という意味です。

A < B と書くと「A は B より小さい」となります。

数字にすると 3 < 7 「3 は 7 より小さい」です。

3 < 7

 
 

例題

「$num は 100より小さい」という条件式を書いてください。

答えを確認する$num < 100

 
 

⑤ >=(以上)

>= は「~以上」という意味です。

A >= B と書くと「A は B 以上」となります。

>= は > ととても間違いやすいのでご注意ください。

$num > 3($num は 3 より大きい)と書いた場合は 3 は含みません
$num >= 3($num は 3 以上)と書いた場合は 3 を含みます

 

例題1

「$num は 100 以上」という条件式を書いてください。

答えを確認する$num >= 100

 

例題2

「$num は 100 より大きい」という条件式を書いてください。

答えを確認する$num > 100

 
 

⑥ <=(以下)

<= は 「~以下」という意味です。

A <= B と書くと「A は B 以下」となります。

<= も < と間違いやすいのでご注意ください。

$num < 3($num は 3 より小さい)と書いた場合は 3 は含みません
$num <= 3($num は 3 以下)と書いた場合は 3 を含みます

 

例題1

「$num は 100 より小さい」という条件式を書いてください。

答えを確認する$num < 100

 

例題2

「$num は 100 以下」という条件式を書いてください。

答えを確認する$num <= 100

 
 

複数の条件式を繋げる

ここまで紹介した条件式は条件が一つだけの場合でしたが、複数の条件式を繋げることもあります。

例えば

  • $num は 3 または 5
  • $num は 2 より大きくて、8 より小さい
  • $name は 山田で、$age は 10 から 50 の間

など、複数の条件を組み合わせることがよくあります。
 

このときに使うのが && と || です。
 

&&(かつ)

&&「かつ」は「$num は 2 より大きくて、かつ、8 より小さい」など、複数の条件を満たす必要があるときに使います。

英語だと「AND」の意味です。

算数の場合は「2 < $num < 8」と1行で書くことができますが、プログラミングでは2つの条件式に分けて書きます。

「2 < $num」と「$num < 8」を && で繋げて

2 < $num && $num < 8

と書きます。
 

複数の && を繋げることもできます。

$name != "" && $name == "山田" && $age == 20 && $email != ""

 
 

例題

「$name が山田で $age が 50 以下」という条件式を書いてください。

答えを確認する$name == "山田" && $age <= 50

 
 

||(または)

||「または」は「$num は 2 または 8」など、どちらかの条件を満たしていれば良い場合に使います。

英語だと「OR」の意味です。

「$num は 2 または 8」という条件の場合は、「$num == 2」と「$num == 8」を || で繋げて

$num == 2 || $num == 8

と書きます。
 

複数の || を繋げることもできます。

$num == 1 || $num == 2 || $num == 5 || $num == 9

 
 

例題

「$name が山田か佐藤」という条件式を書いてください。

答えを確認する$name == "山田" || $name == "佐藤"

 
 

&& と || を組み合わせる

&& と || を組み合わせて使うこともできます。

ここで一つ注意が必要なのが「&& と || を両方書いた場合は && の判定が優先される」ということです。
 

以下の条件を例に考えてみましょう。
条件:$name が山田か佐藤で、かつ、$age が 10 以上 30 未満
 

この条件をそのまま条件式にしてみると

$name == "山田" || $name == "佐藤" && $age >= 10 && $age < 30

となります。

しかし、この場合 && が優先されるので「$name が山田」または「$name が佐藤で $age が 10 以上 30 未満」となってしまいます。

 
 

これを「$name が 山田か佐藤」かつ「$age が 10 以上 30 未満」という条件式にするには、括弧を使って優先順位をつけます。
 

まずは「$name が山田か佐藤」という条件式を書いて括弧をつけます。

($name == "山田" || $name == "佐藤")

 

次に「$age が 10 以上 30 未満」という条件式を書いて括弧をつけます。

($age >= 10 && $age < 30)

 

最後にこの 2 つの条件式を && でつなぎます。

($name == "山田" || $name == "佐藤") && ($age >= 10 && $age < 30)

 

これで「$name が 山田か佐藤」かつ「$age が 10 以上 30 未満」という条件式がつくることができます。

 
 

練習問題

最後に練習問題を用意したので、ぜひ挑戦してみてください。
 

問題①

「$num は 1より大きい」という条件式を書いてください。

答えを確認する$num > 1

 

問題②

「$num は 4 以上 6 未満」という条件式を書いてください。

答えを確認する$num >= 4 && $num < 6

 

問題③

「$num は 1 以上かつ偶数」という条件式を書いてください。

ヒント
偶数は「2で割ったときに余りが0になる数字」と考えることができます。

答えを確認する$num >= 1 && $num % 2 == 0

 

前回の四則演算で「余りを取得する % 」を紹介したのを覚えているでしょうか?

$num = 7 % 3;
echo $num; // 計算結果:1

この % は、数値が偶数か奇数かを判定するときに使うことができます。
 

偶数は 2 で割り切ることができる数字、つまり 2 で割ったときに余りが 0 になる数字なので

$num % 2 == 0

と書くことができます。

奇数は 2 で割り切れない数字、つまり 2 で割ったときに余りが 0 にならない数字なので

$num % 2 != 0

と書くことができます。

 
 

まとめ

新しい記号がたくさん出てきましたが、プログラミングを習得するために比較はとても大切な考え方です。

よくわからないなと思ったときは、いつでもこのページに戻ってきて簡単な例を使って考えてみてくださいね????

今回は比較記号の種類を紹介しましたが、次回はさらに詳しい比較の使い方を紹介していきます。
 

ABOUT ME
Sara
Sara
「わかりやすく・シンプル」をモットーに、携帯アプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
独学は難しそうと感じたら

 
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。

オンラインスクールを選ぶときのポイント

  • 無料体験があること
  • 個別サポートがあること

自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
 
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。

ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい????
 

1. TechAcademy(テックアカデミー)

オンライン完結で勉強できるスクールで、コースがとても充実しています。チャットで質問すればすぐに回答を得られるのが一番のおすすめポイントです。
オリジナルのサービスやアプリの開発もサポートしてくれるので、開発したいものが決まっている人にもオススメです。

無料体験はこちら

2. CodeCamp(コードキャンプ)

一対一で受講できる個別指導のプログラミングスクールです。
Webデザイン・Webサービス開発・アプリ開発などを幅広く学習することができます。
マンツーマンなので自分のペースで学習できて、質問もその都度できるのがメリットです。

無料体験レッスンはこちら

3. Treehouse

英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。

7日間の無料体験はこちら

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA