Bashにはさまざまなタイプの条件ステートメントがあります。
- ifステートメント
- if-elseステートメント
- if..elif..elseステートメント
- ネスト
この記事では、条件ステートメントの1つであるif、elseif、elseをいくつかの例とともに学習します。他のいくつかの言語では、elifはelseifまたはelseifとして記述されます。 elifステートメントは、さまざまな選択肢の中から決定を下すのに役立ちます。
if、elseif、elseの構文は次のとおりです。
もしも <test_expression>>;それから
<実行するコマンド>>
エリフ <test_expression>>;それから
<実行するコマンド>>
そうしないと
<実行するコマンド>>
なれ
if ’キーワードの後に、チェックする条件が続きます。このif-else-if条件文では、式は上から下に評価されます。
- これに続いて それから キーワード。
- その後、式がtrueと評価されると、対応するステートメントが実行されます。式がfalseと評価された場合、elif内の対応するステートメントが実行されます。
- いずれの条件も真でない場合、elseblocked内のステートメントが実行されます。
例1
elif(else if)は、複数のif条件に使用されます。最初の条件がfalseになった場合は、別のif条件を確認してください。次の例では、ユーザーからの入力を受け取り、対応するステートメントを表示しています。
- if条件を使用して、マークが80以上であるかどうかを確認します。条件がtrueと評価された場合、thenブロックの下でechoコマンドを使用してExcellentを出力します。
- 最初の条件がfalseと評価された場合、elif条件を使用して、マークが70以上であるかどうかを確認します。これがtrueと評価された場合、Goodと出力されます。
- 上記の条件のいずれもtrueと評価されない場合、else条件に移行し、Satisfactoryと出力されます。
もしも [ $ marks -与える 80 ]
それから
捨てた '優秀な'
エリフ [ $ marks -与える 60 ]
それから
捨てた '良い'
そうしないと
捨てた 「満足」
なれ
例2:
たとえば、特定のコースのマークを文書化する必要があります。合計点数は200点で、クイズは100点、課題は100点です。全体の数が200を超えないようにしながら、課題とクイズの合計を表示したいと思います。
- 入力を取ります:quiz_marksとassignments_marks
- if条件とelif条件を使用して、2つの入力のいずれもがそれぞれの可能な最大マーク(100)を超えていないことを確認します。
- 入力quiz_marksまたはassignments_marksのいずれかが100を超える場合は、echoコマンドを使用して警告メッセージを表示します。
- クイズの入力マークを確認してください
- 割り当ての入力マークを確認してください
- 上記の条件のいずれも一致しない場合、つまりどちらのマークも100を超えない場合は、else条件に移動し、echoコマンドを使用してマークの合計を表示します。
読んだ -NS '理論マークを入力してください:'quiz_marks
読んだ -NS '実用的なマークを入力してください:'Assignments_marks
もしも (((($ quiz_marks >> 50)。)。;
それから
捨てた 「クイズの入力マークを確認してください。」
エリフ (((($ assignments_marks >> 50)。)。;
それから
捨てた 「割り当ての入力マークを確認してください。」
そうしないと
捨てた 'あなたの合計点数:sum =$((クイズ_マーク+割り当て_マーク)) '
なれ
例3:
銀行口座プログラムの別の例を見てみましょう。このプログラムでは、3つの異なる状況に対して3つの別々の出力が必要です。
- 残高がゼロ未満
- バランスはゼロです
- 残高がゼロを超えています
たとえば、次のプログラムでは、if、elif、elseステートメントを使用して、さまざまなシナリオでさまざまな出力を表示します。
- if条件を使用して、残高がゼロ未満かどうかを確認します。この条件がtrueと評価された場合は、echoコマンドを使用してメッセージを表示します。残高がゼロ未満です。資金を追加してください。追加しないと、ペナルティが課せられます。
- 上記の条件が一致しない場合は、elif条件を使用して、残高がゼロに等しいかどうかを確認します。 trueと評価された場合は、次のメッセージを表示します。残高がゼロです。資金を追加してください
- 上記の条件のいずれにも一致しない場合は、else条件を使用して次を表示します。残高がゼロを超えています。
バランス=900
もしも ((((バランス< 0)。)。;それから
捨てた 「残高がゼロ未満です。さらに資金を追加してください。追加するとペナルティが課せられます」
エリフ ((((バランス==0)。)。;それから
捨てた 「残高はゼロです。資金を追加してください」
そうしないと
捨てた 「あなたの残高はゼロを超えています。」
なれ
上記の条件ステートメントの例if、elif、elseから、この条件ステートメントがどのように機能し、さまざまなシナリオでどこで使用できるかを理解できるはずです。あなたがその記事を気に入ってくれたことを願っています。