我很困惑..它打印第一個c後,它是1,然後c變成了2,然後它應該打印c,這是2 .. int c = 1;爲什麼第一個是無限循環?
while (c<=10)
printf("%d\n", c);
c = c + 1;
while (c<=10)
{
printf("%d\n", c);
c = c + 1;
}
我很困惑..它打印第一個c後,它是1,然後c變成了2,然後它應該打印c,這是2 .. int c = 1;爲什麼第一個是無限循環?
while (c<=10)
printf("%d\n", c);
c = c + 1;
while (c<=10)
{
printf("%d\n", c);
c = c + 1;
}
的值當後面沒有
{
}
While循環下面的語句是隻認爲是循環 所以你的一部分由於while循環運行的條件始終爲真,因此代碼將無限期地運行while循環的while循環 用花括號括住print和increment語句!
下一步*聲明*,而不是*行*。循環的主體總是一個語句 - 只是這個語句通常是一個複合語句,即包含在'{...}'中的幾個語句。 – Caleb
@Caleb是真的! –
謝謝!這很清楚! –
這是因爲周圍有縮進塊沒有花括號,所以只有printf
是同時的一部分。
對於沒有大括號的while循環,它在while循環之後使用單個語句。
因此,在第一個while循環中,while只接受printf語句。
如果將它括在大括號中,它將作爲一個語句塊。如果不包含在花括號中,則只需要一條語句。
因此,它不會增加C.
這是因爲如果你不使用{}的同時APPLIS只在第一行,那你有什麼樣
while (c<=10)
printf("%d\n", c);
C從不改變,循環將永遠運行下去
你是唯一循環打印語句並且變量不會遞增。
c = c + 1;
未調用。 { }
定義了while循環的範圍而不是製表符。
變化:
while (c<=10)
printf("%d\n", c);
c = c + 1;
到:
while (c<=10){
printf("%d\n", c);
c = c + 1;
}
的原因是,如果一段時間後沒有括號,那麼只有第一個指令執行完成後正確的。
在printf(「%d \ n」,c)附近缺少'{}'; c = c + 1;' – chux