簡體   English   中英

關於 c 編程和終止循環中的 break 語句

[英]About break statement in c programming and termination of a loop

我對這個程序中的break語句有疑問。
從技術上講, break語句終止了它所在的循環,但在這個程序中, break位於if語句中。
所以,這里的break應該只終止if語句,對吧? 但它也終止了do-while語句。
對不起,如果我問錯了什么。 我是編程新手

#include <stdio.h>

int main()
{
    int count;
    char response;

    for (count = 1; count <= 100; count++)
    {
        printf("count = %d\n", count);
    
        printf("enter y to continue or any other key to quit");
    
        scanf(" %c", &response);
    
        if (response != 'y')
            break;
    }

    printf("thank you!\n");
    return 0;
}

根據 C 標准(6.8.6.3 中斷聲明)

2 break 語句終止執行最小的封閉 switch 或迭代語句。

這個 if 語句中的這個 break 語句

if (response !='y')
    break;

終止執行封閉的 for 語句。

你可以想象它的動作如下

for (count=1;count<=100;count++){
    //...    
    if (response !='y')
    goto L1;
}
L1:
printf("thankyou!");

如果 if 語句未包含在迭代或 switch 語句中,則不能在 if 語句中使用 break 語句。

break 語句是一個跳轉語句,它將控制傳遞到最小的封閉 switch 或迭代語句之外。

您可以在兩個 state 中使用“break”語句。

  1. 在循環中
  2. 在 switch-case 如果你在循環中使用。 當 break 語句起作用時,循環將結束。 如果在 switch-case 中使用。當 break 語句在其中一種情況下起作用時,其他情況下不起作用。 隱式地,循環結束,如果塊不會再次運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM