〽️ 条件分岐です。 〽️ 条件演算子の基本形。 〽️ if文からの変更と注意点。 〽️ 関数も呼び出せる。 〽️ 簡単なもので試そう。
JavaScriptコードの「?」をまとめたページはこちら⬆︎。
(条件)? (trueの場合):(falseの場合)
こんにちは、「ふ」です。
JavaScriptのコードで目にする、
a ? b:c
という、疑問符「?」とコロン「 : 」がセットになっている、謎の表記。
いきなり目にしたときは、こっちが『?』になりますよね💧
これは条件演算子とよばれるもので、
「条件aが成立するならb、成立しないならc」
という、条件分岐を行なっています。
また「条件」「真の場合」「偽の場合」と、オペランド(非演算子)が3つあることから「三項演算子」とも呼ばれています。
で、ややこしいネーミングばそれほど重要ではありません。今回は「?」と「 : 」による条件演算子の仕組みを紹介していきます。そしてサンプルをいくつか試してみて、条件演算子を自分のものにしてしまいましょう!
条件演算子がよく使われるのが、変数や定数への代入です。
let a = 5;
変数aをつくって、値を数値の「5」としておきます。
次に変数bを作るのですが、aを使って「条件」を提案し、真偽(成立するか、成立しないか)によって代入する値を振り分けてみます。
let b = 「「1a<5?」」 1:2;
条件演算子を使うと、このような形に。
「=」の右側を言語化すると、
「aは5より小さいか?」
「真なら1を代入、偽なら2を代入」
ということになります。
その後、bを出力してみます。
console.log(b); 「「3//「2」と出力される」」
条件「a<5」は正しくないので、「:」の後ろに記述されている、偽のほうの処理「2を代入」が実行されたことがわかります。
次は条件が真になるように変更して、試してみましょう。
let b = 「「1a>3?」」 1:2; console.log(b); 「「3//「1」と出力される」」
条件「a>3」は真なので、「:」の前にある「1を代入」が実行されました。
いま、変数に代入する例を紹介しました。
しかし条件演算子は「演算子」なので、単独で処理を記述することも可能です。
他の演算子、例えば「++」は数値を1増やすインクリメント演算子ですが、
a++;
と単独で処理を記述することが可能です。それと同じ使いかたができます。
let b; a<5? b = 1:b = 2; 「「1//演算子単独で記述」」 console.log(b); 「「3//「2」が出力される」」
ただしこのようにコードが長くなってしまうケースもあります。
条件演算子の中では変数を宣言することはできないので、あらかじめbを宣言しておく必要があります。新たに宣言する変数に関しては、代入形式で
let b = a<5? 1:2;
としたほうがシンプルですね。
「条件分岐」といえば、先づ思い浮かべるのが「if文」でしょう。
条件演算子を使えば、if文による条件分岐を簡潔に記述することもできます。ただし、注意点もあるので覚えておいてください。
let c = 3; if(c == 3 ) { bbconsole.log("条件成立"); bb} else { bbcosole.log("不成立"); }
変数cが3に等しければ「条件成立」、そうでなければ「不成立」と出力する条件分岐です。
これをそのまま「直訳的」に条件演算子バージョンに変更すると、
c ==3? console.log("条件成立"):console.log("不成立");
となるのですが、ここは演算子ごと引数に入れてしまいましょう。
console.log(c == 3? "条件成立":"不成立");
すごくシンプルにすることができました。
if文を条件演算子に書き換えるときの注意点はここ。
if文には、「else」の存在しないものもあります。たとえば、
let d = 10; if(d<10) { c = 4; } 次の処理 次の処理 ....
条件「d<10」であればcに「4」を代入するというif文。
条件に当てはまらなければこのif文はスルーされて、次の処理が実行されていきます。「当てはまらない場合の処理」は記述する必要はありません。
ところが条件演算子で同じことをすると、
let d = 10; d<10?c = 4; 「「4//エラー」」
条件不成立の場合の処理を省略すると、エラーになってしまいます。
もし「偽」の場合にスルーしたい場合には、if文を使うようにしてください。
条件演算子を使って、関数を呼び出すこともできます。
function kan1() { alert ("おはよう"); } function kan2() { alert("こんにちは"); } let jikoku = 11;
「おはよう」「こんにちは」をそれぞれアラートする、「kan1」と「kan2」。
また時刻を代入するための変数「jikoku」も作って、初期値を「11」としました。
jikoku <= 10? kan1():kan2(); 「「3//「こんにちは」がアラートされる」」
このように書くと、「jikokuが10以下ならkan1を実行、そうでなければkan2を実行する」とできます。
「条件判定後の処理がいくつかある」などと複雑な場合には、関数を定義しておいて呼び出すほうがわかりやすくなります。
const aisatu = jikoku <= 10? kan1:kan2; aisatu();
また⬆︎のように、条件分岐そのものを関数として定義しておき、実行することもできます。
今回はJavaScriptの条件演算子について紹介してきました。最後までお読みくださり、ありがとうございます。
ぜひご自分で、何か簡単なシチュエーションと条件をつくって、試してみてください。
実際にコードを書いてみると、うまく動作したりしなかったりするでしょう。しかしその試行錯誤を経たのちにはもう「?」や「:」がコードに出現してもちっとも驚かなくなります。
そう、条件演算子が「自分の所有物」となるのです。
「JavaScriptコードの何だこれ?」、シリーズ、まだまだ続きそうなので学習にお役立てください。
ではまた、会いたい? お会いしましょう : そんなこと言わないで〜
JavaScript、乱数の範囲や重複を指定〜Math.random使い方。
2021.11.17
整数/範囲/重複の有無を自在にあやつろう。
JavaScriptの矢印「=>」〜これはアロー関数というものです。
2022.01.09
使い方とメリットについて解説。
ブログのクリックをGoogle Analyticsで計測。
2021.11.30
新たなツールは導入せずともOK。
swift、web、ガジェットなど。役立つ情報や観ていてたのしいページを書いていきたいと思います。