2017-06-17 61 views
-2

這個C代碼的輸出是什麼? //輸出給出5個hi。我不明白它是如何5我認爲輸出可能8喜。所以我想要這個輸出的解釋。C中下列程序的輸出是什麼?

void main() 
{ 
    int i = 0, j = 0; 

    for (i = 0; i < 5; i++) 
    { 
     for (j = 0; j < 4; j++) 
     { 
      if (i > 1) 
       break; 
     } 
     printf("Hi\n"); 
     } 
    } 
+2

您是否嘗試過在調試器步進通過我的價值在你的輸出只有5嗨? – sbooth

+1

[如何調試小程序](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) –

+0

也許你應該解釋爲什麼你認爲這應該產生8行而不是5行那麼我們也許可以看到你誤解代碼的地方,並解釋爲什麼這是錯誤的。 –

回答

1
for (j = 0;j < 4; j++) 
{ 
    if (i > 1) 
     break; 
} 

此for循環不執行任何本質。

1

內部for循環並沒有真正做任何事情。真正發生的唯一情況是它檢查if (i>1)並且它離開了內部循環。

所以執行返回到外循環,"hi"爲每i

4

其實你正在設法解決這個循環

for (i = 0; i < 5; i++) 
{ 

    printf("Hi\n"); 

} 

你的內循環有沒有影響打印一次輸出,因爲沒有輸出語句那裏

絕對T A break語句 看到

for (j = 0;j < 4; j++) 
{ 
    if (i > 1) 
     break; 
} 

這就是爲什麼你可以根據

編碼快樂