Switch ステートメント内からループを抜け出す
コード内を移動しているときに、ループを内側から抜け出す必要がある状況が発生することがあります。 switch ステートメント。次のシナリオを考えてみましょう:
while(true) {
switch(msg->state) {
case MSGTYPE: // ...
break;
// ... more stuff ...
case DONE:
**HERE, break out of the loop itself**
}
}
目標は、フラグや条件ブレークに頼ることなく、囲まれたループから抜け出すエレガントな方法を見つけることです。
迅速な終了: 'goto' の使用
C の領域では、「goto」ステートメントが簡単な解決策を提供します。現在の関数内の特定のラベルにジャンプできます。 「goto」を利用すると、switch ステートメント内からループをきれいに終了できます。
while ( ... ) {
switch( ... ) {
case ...:
goto exit_loop;
}
}
exit_loop: ;
このアプローチは、ループを終了するための簡潔かつ明示的な方法を提供します。コードの可読性を維持するために、「goto」は控えめに使用する必要があることに注意してください。ただし、状況によっては、シンプルで効果的な解決策となる場合があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3