4

インタビューでこんな質問をされました。私はそれが条件付き構造であると答えました。

  • 複数回実行できるループとは異なり、ループは 1 回実行されます。
  • ループ制御メカニズムはなく、さまざまなケースに基づく条件付き切り替えのみがあります。

私の答えが正しいか間違っているか、より良い答えはありますか?

また、ループでのみ機能するため、break;ステートメントが switch-case で機能する理由も尋ねました。break;この質問には答えられませんでした。

4

3 に答える 3

12

C++ の場合

switchselection-statement

n3376 6.4/1 と 6.4.2 についてswitch

selection-statement:
...
switch ( condition ) statement

breakjump-statement

n3376 6.6.1/1

break ステートメントは iteration-statement または switch ステートメントでのみ発生し、それを囲む最小の iteration-statement または switch ステートメントを終了させます。制御は、終了したステートメントの次のステートメントに渡されます (存在する場合)。

于 2013-05-16T06:37:51.210 に答える
0

switch ケースは、命令のブロックをラップし、それを実行 (一部) する方法です。ここから始まり、ここで終わります。一致caseは開始を示し、次breakは終了を示します。

ブロックは、いくつかの命令である可能性があります。

{
     instruction_A;
     instruction_B;
     instruction_C;
     instruction_D;
}

ステートメントは、値caseに基づいて動的に開始する場所を示します。switch

switch(value)
{
case one:
     instruction_A;
     instruction_B;
case two:
     instruction_C;
case three:
     instruction_D;
}

の場合one、ブレークがないため、すべての命令が呼び出されます。two例外がなければ、Caseは C と D を実行します (c;.

breakステートメントはどこで停止するかを示しており、多数のケース ステートメントを省略できることを意味します。

switch(value)
{
case one:
     instruction_A;
     instruction_B;
case two:
     instruction_C;
     break;
case three:
     instruction_D;
}

Caseoneは A、B、および C を実行しますが、D は実行しません。

于 2013-05-16T06:50:37.110 に答える