JavaScriptで条件文を書く方法
序章
プログラミングでは、ユーザー入力やその他の要因に応じて、さまざまなコードブロックを実行する必要がある場合が多くあります。
例として、各フィールドが適切に入力されている場合はフォームを送信したいが、いくつかの必須フィールドが欠落している場合はそのフォームが送信されないようにしたい場合があります。 このようなタスクを実行するために、すべてのプログラミング言語の不可欠な部分である条件付きステートメントがあります。
条件文は、trueまたはfalseの結果に基づいて特定のアクションを実行します。
表示される可能性のあるJavaScript条件ステートメントの例は次のとおりです。
- ユーザーの場所を確認し、国に基づいて正しい言語を表示します
- 送信時にフォームを送信するか、不足している必須フィールドの横に警告を表示します
- クリックイベントでドロップダウンを開くか、すでに開いている場合はドロップダウンを閉じます
- ユーザーが法定飲酒年齢を超えている場合は、アルコール供給業者のWebサイトを表示します
- ホテルの予約フォームを表示しますが、ホテルが予約されている場合は表示しません
条件付きステートメントは、コンピュータープログラムのロジック、意思決定、またはフロー制御の一部です。 条件文を「ChooseYourOwnAdventure」の本またはフローチャートと比較できます。
このチュートリアルでは、if
、else
、およびelse if
キーワードを含む条件ステートメントについて説明します。 三項演算子についても説明します。
Ifステートメント
条件ステートメントの最も基本的なものは、if
ステートメントです。 if
ステートメントは、ステートメントがtrueかfalseかを評価し、ステートメントがtrue
を返した場合にのみ実行されます。 false
の結果の場合、コードブロックは無視され、プログラムは次のセクションにスキップします。
if
ステートメントは、if
キーワードで記述され、その後に括弧で囲まれた条件が続き、中括弧で囲まれたコードが実行されます。 つまり、if () {}
と書くことができます。
これは、基本的なif
ステートメントのより長い検討です。
if (condition) { // code that will execute if condition is true }
if
ステートメントの内容はインデントされており、実行するコードのブロックを含む中括弧は、関数ブロックのようにセミコロンで終了しません。
例として、ショッピングアプリを考えてみましょう。 たとえば、このアプリの機能のために、アカウントに一定額の資金を入金したユーザーが、ストアからアイテムを購入したいとします。
shop.js
// Set balance and price of item const balance = 500; const jeans = 40; // Check if there are enough funds to purchase item if (jeans <= balance) { console.log("You have enough money to purchase the item!"); }
OutputYou have enough money to purchase the item!
アカウントの残高が500
で、40
のジーンズを購入したいと考えています。 以下の演算子を使用して、ジーンズの価格が私たちの持っている資金の額以下であるかどうかを確認できます。 jeans <= balance
はtrue
と評価されるため、条件が通過し、コードのブロックが実行されます。
新しい例では、利用可能な残高よりも高いコストの新しいショップアイテムを作成します。
shop.js
// Set balance and price of item const balance = 500; const phone = 600; // Check if there is enough funds to purchase item if (phone <= balance) { console.log("You have enough money to purchase the item!"); }
phone <= balance
はfalse
と評価されるため、この例には出力がありません。 コードブロックは単に無視され、プログラムは次の行に進みます。
その他の声明
if
ステートメントでは、ステートメントがtrue
と評価された場合にのみコードを実行しますが、条件が失敗した場合に何か別のことが発生することがよくあります。
たとえば、フォームが正しく送信されなかった場合に、どのフィールドが正しく入力されたかをユーザーに通知するメッセージを表示したい場合があります。 この場合、else
ステートメントを使用します。これは、元の条件が成功しなかった場合に実行されるコードです。
else
ステートメントは、if
ステートメントの後に記述され、括弧内に条件はありません。 基本的なif...else
ステートメントの構文は次のとおりです。
if (condition) { // code that will execute if condition is true } else { // code that will execute if condition is false }
上記と同じ例を使用して、アカウントの資金が少なすぎる場合に表示するメッセージを追加できます。
shop.js
// Set balance and price of item const balance = 500; const phone = 600; // Check if there is enough funds to purchase item if (phone <= balance) { console.log("You have enough money to purchase the item!"); } else { console.log("You do not have enough money in your account to purchase this item."); }
OutputYou do not have enough money in your account to purchase this item.
if
条件が成功しなかったため、コードはelse
ステートメントの内容に移ります。
これは、警告を表示したり、先に進むために実行するアクションをユーザーに知らせたりする場合に非常に役立ちます。 通常、成功と失敗の両方でアクションが必要になるため、if...else
は単独のif
ステートメントよりも一般的です。
それ以外の場合のステートメント
if
およびelse
を使用すると、条件がtrue
またはfalse
のどちらであるかに応じて、コードのブロックを実行できます。 ただし、場合によっては、複数の可能な条件と出力があり、2つ以上のオプションが必要になることがあります。 これを行う1つの方法は、else if
ステートメントを使用することです。これにより、3つ以上の可能な結果を評価できます。
これは、if
ステートメント、複数のelse if
ステートメント、およびtrue
。
if (condition a) { // code that will execute if condition a is true } else if (condition b) { // code that will execute if condition b is true } else if (condition c) { // code that will execute if condition c is true } else { // code that will execute if all above conditions are false }
JavaScriptはすべてのステートメントを順番に実行しようとしますが、いずれも成功しない場合は、デフォルトでelse
ブロックになります。
else if
ステートメントは必要な数だけ持つことができます。 多くのelse if
ステートメントの場合、読みやすさのためにswitchステートメントが優先される場合があります。
複数のelse if
ステートメントの例として、100点満点のスコアに基づいて文字の成績を出力する採点アプリを作成できます。
このアプリの要件は次のとおりです。
- 90以上のグレードはAです
- 80から89のグレードはBです
- 70から79のグレードはCです
- 60から69のグレードはDです
- 59以下のグレードはFです
以下では、if
、else
、およびelse if
ステートメントの単純なセットを作成し、特定のグレードに対してテストします。
grades.js
// Set the current grade of the student let grade = 87; // Check if grade is an A, B, C, D, or F if (grade >= 90) { console.log("A"); } else if (grade >= 80) { console.log("B"); } else if (grade >= 70) { console.log("C"); } else if (grade >= 60) { console.log("D"); } else { console.log("F"); }
OutputB
この例では、最初に90
以上の最高スコアをチェックします。 その後、else if
ステートメントは、デフォルトのelse
に達するまで、80
、70
、および60
より大きいかどうかをチェックします。不合格のグレード。
grade
の87
の値は、技術的にはC
、D
、F
にも当てはまりますが、ステートメントは最初の値で停止します。それは成功です。 したがって、最初の一致であるB
の出力が得られます。
三項演算子
三項演算子は、条件演算子とも呼ばれ、if...else
ステートメントの省略形として使用されます。
三項演算子は、以下に示すように、疑問符(?
)の後にコロン(:
)が続く構文で記述されます。
(condition) ? expression on true : expression on false
上記のステートメントでは、条件が最初に書き込まれ、次に?
が書き込まれます。 最初の式はtrue
で実行され、2番目の式はfalse
で実行されます。 if...else
ステートメントと非常によく似ていますが、構文がよりコンパクトになっています。
この例では、ユーザーが21
以上かどうかをチェックするプログラムを作成します。 そうである場合は、"You may enter"
がコンソールに出力されます。 そうでない場合は、"You may not enter."
がコンソールに出力されます。
age.js
// Set age of user let age = 20; // Place result of ternary operation in a variable const oldEnough = (age >= 21) ? "You may enter." : "You may not enter."; // Print output oldEnough;
Output'You may not enter.'
ユーザーのage
が21
未満であったため、失敗メッセージがコンソールに出力されました。 これに相当するif...else
は、if
ステートメントの"You may enter."
、およびelse
ステートメントの"You may not enter."
になります。
結論
条件付きステートメントは、プログラムの出力を決定するためのフロー制御を提供します。 これらはプログラミングの基本的な構成要素の1つであり、事実上すべてのプログラミング言語で見つけることができます。
この記事では、if
、else
、およびelse if
キーワードの使用方法について学習し、ステートメントのネストと3項演算子の使用について説明しました。