C言語switchにおけるdefault句の役割
C言語switchにおけるdefault句の役割
まず考えてみましょう.switch文で、式の値がすべてのcaseラベルの値と一致しない場合はどうしますか.実は何もありません---すべての文はスキップにすぎません.プログラムは終了しないし、エラーも提示しない.この場合、Cではエラーとは思わないからだ.しかし、すべてのcaseラベルの式値を無視したくない場合は、どうすればいいですか?文リストにdefault句を追加し、このラベルを付ける必要があります.
いずれかのcaseラベルが表示される場所に書きます.switch式の値がすべてのcaseラベルの値に一致しない場合、このdefault句の後ろの文が実行されます.したがって、各switch文にはdefault句が1つしか表示されません.しかし、文リストの任意の場所に表示され、文ストリームはcaseラベルを貫通するようにdefault句を貫通します.
ヒント:
各switch文にdefault句を1つ置くのは良い習慣です.これは、不正な値を検出できるからです.そうでなければ、プログラムはさりげなく実行され、エラーは表示されません.このルールの唯一の合理的な例外は、式の値が以前に有効にチェックされ、式が現れる可能性のある一部の値にのみ興味を持っていることです.
まず考えてみましょう.switch文で、式の値がすべてのcaseラベルの値と一致しない場合はどうしますか.実は何もありません---すべての文はスキップにすぎません.プログラムは終了しないし、エラーも提示しない.この場合、Cではエラーとは思わないからだ.しかし、すべてのcaseラベルの式値を無視したくない場合は、どうすればいいですか?文リストにdefault句を追加し、このラベルを付ける必要があります.
default:
いずれかのcaseラベルが表示される場所に書きます.switch式の値がすべてのcaseラベルの値に一致しない場合、このdefault句の後ろの文が実行されます.したがって、各switch文にはdefault句が1つしか表示されません.しかし、文リストの任意の場所に表示され、文ストリームはcaseラベルを貫通するようにdefault句を貫通します.
ヒント:
各switch文にdefault句を1つ置くのは良い習慣です.これは、不正な値を検出できるからです.そうでなければ、プログラムはさりげなく実行され、エラーは表示されません.このルールの唯一の合理的な例外は、式の値が以前に有効にチェックされ、式が現れる可能性のある一部の値にのみ興味を持っていることです.