switch
ステートメントはスピードのためです。そのため、それらは数値のみです。コンパイラは、コードが常に実行されている場合にパフォーマンスを大幅に向上させることができる非スパース (連続) 値範囲のルックアップ テーブルを作成しようとします。これは、どのコードを実行するかを決定するために、連続した範囲に対して 1 回の比較のみを行う必要があるためです。
switch
case
ステートメントは、それぞれの最後にa を指定する必要があるため、見つけにくいバグを引き起こす可能性があります。そうしbreak
ないと、実行が次の に失敗しcase
ます。
if
//ステートメントは、より一般的に使用するためのものですelse if
。else
一般に、同じ値に対して多くの比較がある場合switch
、同等のステートメントよりも遅くなります。ただし、ステートメントのチェーンがあまり実行されず、チェーンがそれほど長くない場合、パフォーマンスの向上はごくわずかです。if
より一般的な使用法についてif
は、行く方法です。CYOAGでは、スピードは必要ありません。ゲームの最も遅い部分はユーザーです。
これを13歳に説明するには:
単一の整数 (整数) 値に対して 1,000,000 回以上の比較を一度に実行する予定で、できるだけ迅速に実行する必要がある場合は、switch
ステートメントを使用します。そうでなければ、問題ではありません。を使用するときは注意してください。それぞれの最後に がswitch
ない場合、何が起こったのかを理解しようとして頭を悩ませることになるからです。2 つ以上の が実行されたとき。break
case
case