簡體   English   中英

在while循環中使用continue后,代碼不會被執行

[英]Code doesn't get excuted after using continue in while loop

我使用一個編譯器編寫了以下代碼,該編譯器被配置為適合使用eclipse的c89標准。

#include <stdio.h>

int main(void) {
    int i=0;
    printf("initial value for variable i is: %d\n",i);
    while (i<3)
    {
        if (i==1) {continue;}
        printf("%d\n",i);
        i++;
    }
    return 0;
}

問題在於代碼不會被執行(根本沒有錯誤),並且控制台中沒有任何顯示。 當刪除以下代碼行時, if (i==1) {continue;}一切正常。

i1 ,它的值不會改變,因此在下一次迭代和下一次迭代時仍為1 ,並且...從1改變要花很長時間。

for循環的一個優點是它將循環控件捆綁在一行中。 您不會看到for (i = 0; i < 3; i++)作為循環的問題; continue將跳轉到循環控件中的i++

您說您正在使用Eclipse作為您的IDE。 這可能就是為什么根本沒有輸出的原因。 它的“終端”在程序中顯示為非終端,因此I / O被完全緩沖(而不是像終端輸出那樣通常被行緩沖)。 反過來,這意味着在緩沖區填滿,調用fflush(stdout)或程序停止之前,不會出現任何輸出。 這是Eclipse的一個已知問題。 您可以調用setvbuf() :添加一行setvbuf(stdout, NULL, _IOLBUF, BUFSIZ); 首先確保行緩沖有效。

暫無
暫無

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

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