logo

C++ スイッチ

switch ステートメント C++ では強力です 制御構造 これにより、式の結果に基づいて複数のコード セグメントを実行できます。これは、一連のサービスを利用するための洗練された効果的な代替手段を提供します。 if-else-if ステートメント いくつかの可能性の中から決定を下さなければならないとき。

C++ switch ステートメントは、複数の条件から 1 つのステートメントを実行します。 C++ の if-else-if ラダー文に似ています。

 switch(expression){ case value1: //code to be executed; break; case value2: //code to be executed; break; ...... default: //code to be executed if all cases are not matched; break; } 

CPPスイッチ1

C++ スイッチの例

 #include using namespace std; int main () { int num; cout&lt;&gt;num; switch (num) { case 10: cout&lt;<'it 20 is 10'; break; case 20: cout<<'it 20'; 30: 30'; default: cout<<'not 10, or } < pre> <p> <strong>Output:</strong> </p> <pre> Enter a number: 10 It is 10 </pre> <p> <strong>Output:</strong> </p> <pre> Enter a number: 55 Not 10, 20 or 30 </pre> <h2>Features of Switch Statement:</h2> <p>There are several features of the <strong> <em>switch statement</em> </strong> in C++. Some main features of the <strong> <em>switch statement</em> </strong> in C are as follows:</p> <ol class="points"> <li>The <strong> <em>fall-through</em> </strong> behavior of the C++ <strong> <em>switch statement</em> </strong> is one of its key features. The control will <strong> <em>fall through</em> </strong> to the next case if a <strong> <em>break statement</em> </strong> is not used to <strong> <em>stop</em> </strong> a case block. After that, subsequent cases will be processed until a <strong> <em>break</em> </strong> is encountered or the end of the <strong> <em>switch block</em> </strong> is reached. This capability may be purposely used to share common code across several scenarios.</li> <li>The <strong> <em>switch statement&apos;s</em> </strong> capacity to simplify code readability and maintenance is one of its fundamental advantages. Comparing a sequence of <strong> <em>nested if-else statements</em> </strong> to a <strong> <em>switch statement</em> </strong> when dealing with many situations can provide clearer, more organized code. Each case label gives the program a unique and unambiguous path to follow, improving the codebase&apos;s overall readability. It is very advantageous when working with extensive and complicated programs, where maintaining a <strong> <em>logical flow</em> </strong> is crucial.</li> <li>Another noteworthy benefit of the switch statement is <strong> <em>efficiency</em> </strong> . When done correctly, a <strong> <em>switch statement</em> </strong> may frequently be more effective than a succession of <strong> <em>if-else-if</em> </strong> This effectiveness results from the compiler&apos;s ability to optimize the switch statement to produce more effective machine code, which might lead to a quicker execution time. It&apos;s crucial to remember that the real speed improvements may differ based on the circumstance and compiler optimizations.</li> </ol> <h2>Limitations of Switch Statement</h2> <p>There are several limitations of the <strong> <em>switch statement</em> </strong> in C++. Some main limitations of the <strong> <em>switch statement</em> </strong> in C are as follows:</p> <ol class="points"> <li>The <strong> <em>switch statement</em> </strong> has several restrictions, so it&apos;s important to be aware of those as well as industry standards. For instance, the <strong> <em>switch statement&apos;s</em> </strong> expression must be of the <strong> <em>integral</em> </strong> or <strong> <em>enumeration type</em> </strong> . It limits its ability to be used with other data types like <strong> <em>strings</em> </strong> or <strong> <em>floating-point integers</em> </strong> . Additionally, variables or expressions cannot be used as case labels since each case label must reflect a constant value that is known at <strong> <em>compile-time</em> </strong> .</li> <li>It is best practice to add a default case in the <strong> <em>switch statement</em> </strong> to guarantee thorough case coverage. Instances where none of the preceding instances match the value of the phrase are handled by this case. When none of the predetermined situations apply, including a <strong> <em>default case</em> </strong> prevents unexpected behavior and offers a clear path of action.</li> </ol> <h2>Conclusion:</h2> <p>In conclusion, the <strong> <em>C++ switch statement</em> </strong> is a flexible construct that makes it easier for programs to handle a variety of scenarios. Its explicit <strong> <em>case labels</em> </strong> and succinct syntax make code easier to comprehend and maintain, especially in situations when there are many possible outcomes. The <strong> <em>switch statement</em> </strong> improves the organization of program logic by offering a <strong> <em>direct mapping</em> </strong> between <strong> <em>cases</em> </strong> and <strong> <em>actions</em> </strong> . </p> <p>The <strong> <em>switch statement</em> </strong> has advantages over an <strong> <em>if-else-if ladder</em> </strong> in terms of performance since the compiler can optimize it for <strong> <em>quicker execution</em> </strong> . Developers should be aware of its restrictions, such as the need for integral or enumeration expression types and constant case values.</p> <p>It is advised to provide a default case in the <strong> <em>switch statement</em> </strong> to manage mismatched circumstances and use it efficiently and gently. Programmers may take advantage of the switch statement&apos;s advantages to create better <strong> <em>organized, effective</em> </strong> , and <strong> <em>understandable</em> </strong> C++ code by following best practices and comprehending its intricacies.</p> <hr></'it>

出力:

 Enter a number: 55 Not 10, 20 or 30 

Switch ステートメントの特徴:

いくつかの特徴があります switch ステートメント C++で。のいくつかの主な機能 switch ステートメント C では次のようになります。

  1. フォールスルー C++ の動作 switch ステートメント はその重要な機能の 1 つです。コントロールは 落ちる 次のケースに進む場合 ブレークステートメント 慣れていない 停止 ケースブロック。その後、後続のケースは次の処理が行われるまで処理されます。 壊す が発生するか、終了します。 スイッチブロック が達成された。この機能は、複数のシナリオ間で共通のコードを共有するために意図的に使用される場合があります。
  2. switch ステートメントの コードの読みやすさとメンテナンスを簡素化できることは、その基本的な利点の 1 つです。シーケンスを比較すると、 ネストされた if-else ステートメント switch ステートメント 多くの状況に対処する場合、より明確で組織化されたコードを提供できます。各 case ラベルは、プログラムに従うべき一意で明確なパスを与え、コードベース全体の可読性を向上させます。これは、大規模で複雑なプログラムを扱う場合に非常に有利です。 論理的な流れ 重要です。
  3. switch ステートメントのもう 1 つの注目すべき利点は、 効率 。正しく実行されると、 switch ステートメント 多くの場合、連続して実行するよりも効果的である可能性があります もし、そうでなければ、もし この効果は、switch ステートメントを最適化してより効果的なマシン コードを生成するコンパイラーの機能によってもたらされ、実行時間の短縮につながる可能性があります。実際の速度の向上は、状況やコンパイラの最適化によって異なる可能性があることを覚えておくことが重要です。

switch ステートメントの制限事項

いくつかの制限があります switch ステートメント C++で。いくつかの主な制限事項 switch ステートメント C では次のようになります。

  1. switch ステートメント にはいくつかの制限があるため、それらと業界標準を認識しておくことが重要です。たとえば、 switch ステートメントの 式は次のものである必要があります 包括的な または 列挙型 。これにより、次のような他のデータ型での使用が制限されます。 文字列 または 浮動小数点整数 。さらに、各ケース ラベルは既知の定数値を反映する必要があるため、変数または式をケース ラベルとして使用することはできません。 コンパイル時
  2. デフォルトのケースを追加することをお勧めします。 switch ステートメント 徹底したケースカバーを保証します。先行するインスタンスのいずれもフレーズの値に一致しないインスタンスは、このケースによって処理されます。あらかじめ定められた状況のいずれにも当てはまらない場合。 デフォルトのケース 予期しない動作を防止し、明確なアクションの道筋を提供します。

結論:

結論としては、 C++ switch ステートメント は、プログラムがさまざまなシナリオを簡単に処理できるようにする柔軟な構造です。その明示的な ケースラベル 簡潔な構文により、特に多くの結果が考えられる状況で、コードの理解と保守が容易になります。の switch ステートメント を提供することでプログラム ロジックの構成を改善します。 ダイレクトマッピング ケース そして 行動

switch ステートメント に比べて利点があります if-else-if ラダー コンパイラが最適化できるため、パフォーマンスの点で より迅速な実行 。開発者は、整数式または列挙式タイプや定数ケース値の必要性など、その制限に注意する必要があります。

デフォルトのケースを提供することをお勧めします。 switch ステートメント 不一致な状況を管理し、それを効率的かつ穏やかに使用すること。プログラマは switch ステートメントの利点を利用して、より良いものを作成できます。 組織化された、効果的な 、 そして 理解できる ベスト プラクティスに従い、その複雑さを理解して C++ コードを作成します。