JavaScriptといいつつ、まだそれ以前の「プログラミングの基礎」という感じも否めないですが、この辺もおさえておかないといけない部分だと思ってます。というわけで条件分岐。いわゆるif文ですね。
もし「ゼロ」ならば「ゼロですよ」と表示しなさい
…なんか日本語ベーシックみたいな文章ですね。って、分からない人がほとんどだと思いますが、タイトルの通り
もし「ゼロ」ならば「ゼロですよ」と表示しなさい
という文をif文に置き換えると
if (a == 0) { document.write("ゼロですよ"); }
と書けたりします。簡単に解説すると
- if → もし
- (a == 0) → 「ゼロ」ならば
- {document.write(“ゼロですよ”);} → 「ゼロと表示しなさい」
となります。そういえば、表示部分ですが、ブラウザに文字を出す以外の方法も覚えておきたいところ。ちょっと脱線しますが…2種類、紹介しておきます。
コンソールログ(console.log)を使う
chromeなどのブラウザを使っているなら、デベロッパーツールというものが利用できて、そこにコンソールといわれるログが表示される場所があります。エラーメッセージとか警告なんかがここに表示されるんですが、そこにJavaScriptで文字などを出力することができます。
ちなみにchromeでのコンソールの出し方は
1.JavaScriptを実行した結果のブラウザ画面で右クリックして「検証」をクリックする
2.画面横もしくは下(または別ウインドウの場合もある)が表示される。そこに「Console」というタブがあるのでそこをクリックする。
コンソールログの書き方は
console.log("ゼロですよ");
になります。”ゼロですよ”の部分をaなどの入れ物に替えることもできるので、中身に何が入っているのかを確認することもできます。
アラートダイヤログ(alert)を使う
もうひとつはアラートダイヤログです。これは実行してみると「あー、これか」って感じになるんじゃないでしょうか。ダイヤログを利用してそこに文字を表示させる方法。
書き方は
alert("ゼロですよ");
です。シンプルでしょ? ただ、アラートは連発させるといちいち「OK」を押さないといけないので、コンソールログを利用することが多いかなという感じです。逆に、きっちりとした結果を見せたいときには、ポップアップするので、アラートを使うの手がいいかもですね。
というわけで、本題に戻って
もし「ゼロ」ならば「ゼロですよ」と表示しなさい
をコンソールログとアラートダイヤログのふたつ使う形でコードをかいてみると
var a = 0; if (a == 0) { console.log("ゼロですよ"); alert("ゼロですよ"); }
こんな感じになります。あらためて、aにゼロを入れて、aがゼロなら「ゼロですよ」と表示するというプログラムなので、その通りの結果になりますよね。問題なし。
ifとセットでつかう「else」とは
色々な条件で実行したいことを分けたい場合があると思います。たとえば
- ゼロ以外ならば「ゼロじゃないですよ」と表示
なんてこともありえると思います。この場合は
if (a != 0 ) { console.log("ゼロ以外ですよ"); }
となります。「!=」という書き方が「等しくない」という条件になるんですね。
var a = 0; if (a != 0) { console.log("ゼロ以外ですよ"); }
上のように書いて実行すると…何も表示されません。ですよね、aはゼロが入ってますから。
- じゃあ、ゼロ以外の場合は「ゼロですよ」と表示するようにしたい
そういう場合に「else」を使います。コードだと
var a = 0; if (a != 0) { console.log("ゼロ以外ですよ"); } else { console.log("ゼロですよ"); }
となります。この「else」は「ifの条件に合致しない時にはelse以下の内容を実行しなさい」となります。つまり
- ゼロ以外(←if条件の内容「a != 0」)の場合は「ゼロですよ」を表示(←else)
これで求めていた通りの結果が出てきました。
もちろん
var a = 0; if (a == 0) { console.log("ゼロですよ"); } else { console.log("ゼロ以外ですよ"); }
と、ifの条件を入れ替えて書いてもOKです!
「以外」以外の条件の書き方
以外、がふたつもならぶタイトルの書き方はダメですよね~。ま、ワザとなんですけどね。「!=」以外の条件の書き方について。比較演算子という言い方をします。まあ比較なので、大きい・小さい・以上・以下など数学で出てきた表現ですよね。
- 「<」 : 小さい
- 「>」 : 大きい
- 「<=」 : 以下
- 「>=」 : 以上
- 「==」 : 等しい
- 「!=」 : 等しくない
- 「===」 : 等しい(型を含めて完全一致)
- 「!==」 : 等しくない(型を含めて等しくない)
ざっと書き出してみました。下のふたつはより正確に判断する際に使います。まあ、使わなくても大丈夫だったりするので、下ふたつはそんなのもあるんだと覚えておいてくれれば充分です。
複数条件のやり方
他にも下みたいな条件分岐をしたい場合などの書き方もあります。
- aが0であり、bが1の場合
if (a == 0) { if (b == 1) { console.log("条件一致!"); } }
と書いても問題はありません。でもこういう書き方もできます。
if (a == 0 && b == 1) { console.log("条件一致!"); }
「&&」はANDという意味になります。アンドでつないだ条件は「両方とも満たす場合にのみ」条件が一致したと判断されます。なので
var a = 0; var b = 1; if (a == 0 && b == 1) { console.log("条件一致!"); }
この場合は「条件一致!」が表示れますが
var a = 0; var b = 0; if (a == 0 && b == 1) { console.log("条件一致!"); }
これは表示されません。bの中身はゼロですからね。
次にこのパターンの場合は
- aが0 もしくは bが1の場合
if (a == 0) { console.log("条件一致!"); } else if (b == 1) { console.log("条件一致!"); }
と書く方法もあります。少しややこしい感じもしますが「else if」は「最初のifの条件合致しない場合、次のifの条件で判断」となります。なので、「aが0以外の時にbが1ならば」となり、つまりは「aが0 もしくは bが1の場合」ということになります。もちろん、これにもスマートな書き方があって
if (a == 0 || b == 1) { console.log("条件一致!"); }
とすることができます。「||」はORという意味。つまり「どちらかの条件が満たされていれば」という判断になります。
まとめ
今回は条件判断「if文」についてでした。プログラムでは繰り返しや条件判断を使うことで、複雑な処理ができるようになっていきます。基礎であり要でもある部分なので、しっかりと復習しておきたいところですよね。特に複数条件の判断はちゃんと理解しておかないとエラーの根本的な原因になりかねないので注意しましょう。最後にコードを載せておきますので、いつも通りコピペで試してみてくださいね!
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>JavaScript</title> <link rel="stylesheet" href=""> </head> <body> <div id="ele"></div> <script> var a = 1; if (a != 0) { console.log("ゼロ以外ですよ"); } else { console.log("ゼロですよ"); } var b = 1; if (a == 0 && b == 1) { console.log("and条件一致!"); } if (a == 0 || b == 1) { console.log("or条件一致!"); } </script> </body> </html>