breakとcontinue,C言語breakとcontinueの使い方と違い

1752 ワード

break文はとても重要で、とてもたくさん使って、初心者は必ずマスターしなければなりません.continue文はbreak文ほど使われていませんが、よく使われています.また、欠けてはいけません.continueを使う必要がある場合、他の文はかけがえのないものです.前にbreak文について説明しましたが、「ループ体」だけでなく、switchも飛び出します.しかし、実際にはbreakもこの2つの状況にしか使用できません.break文は、ループ文およびswitch文以外の文では使用できません.forサイクルでもwhileサイクルでもdo...whileサイクルでもbreakで飛び出すことができますが、breakは1つのサイクルしか飛び出せません.多層ループがネストされている場合、breakは「ラップ」の一番奥のループから飛び出すしかなく、一度にすべてのループから飛び出すことはできません.同様に、多層switchネストされたプログラムでは、breakも最も近いswitchから飛び出すしかありません.しかし、多層switchネストは珍しい.continueの使い方は非常に簡単で、今回のループを終了する役割を果たします.すなわち、ループ体の下にまだ実行されていない文をスキップし、次にループを実行するか否かの判定を行います.
continueとbreakの違い
continue文とbreak文の違いは、continue文がループ全体を終了するのではなく、今回のループのみを終了することです.break文はループプロセス全体を終了し,ループを実行する条件が成立するか否かを判断しない.また、continueはループ文でのみ使用できます.すなわち、for、while、do...whileでのみ使用できます.それ以外はcontinueはどの文でも使用できません.したがって、continueは、switchが循環体にない限り、switchでは使用できないことを改めて強調する.このときcontinueが示すのもループを終了する今回のループであり,switchとは関係ない.たとえば、switchを使用してエレベーターの動作をシミュレートするコードを次に示します.
# include 
    int main(void)
    {
    int val; //variable   , “  ”   
    printf("         :");
    while (1)
    {
    scanf("%d", &val);
    switch (val)
    {
    case 1:
    printf("1  !
"); break; // switch case 2: printf("2 !
"); break; // switch case 3: printf("3 !
"); break; // switch default: printf(" , :"); continue; // while } break; // while } return 0; }

出力結果は:行きたい階を入力してください:4この階は存在しません.3 3階が開いています.このときdefaultでcontinueを使用しないと、最後の「このレイヤは存在しません.再入力してください:」はまだ機能しません.出力できますが、出力後はそのまま後続のbreakを実行し、ユーザーは再入力する機会がありません.continueを加えると、このwhileループが終了します.つまり、後ろのbreak文は今回は実行されず、直接whileループに入り、ユーザーが「再入力」する機会があります.