有趣的for循环
這段代碼會(huì)輸出什么?我說(shuō)死循環(huán)你會(huì)信?
上面是我在某一時(shí)刻截取的屏幕輸出,可以看到此時(shí)的Second 、Third 、Fourth 都已經(jīng)達(dá)到了5000以上,并不是我們一開(kāi)始想象的到10就截止了,而且它一直在執(zhí)行屏幕輸出,已經(jīng)是一個(gè)死循環(huán)了。那么為什么會(huì)有上面的現(xiàn)象呢?下面來(lái)分析一下。
for循環(huán)語(yǔ)句塊判斷是否繼續(xù)執(zhí)行的語(yǔ)句已經(jīng)換成了i<10, printf(” Second = %d”, i),這里考察的兩個(gè)知識(shí)點(diǎn)分別是:
1、逗號(hào)表達(dá)式的值怎么求
2、printf()函數(shù)的返回值
來(lái)分析分析:
逗號(hào)表達(dá)式的值是最后一個(gè)逗號(hào)后面的表達(dá)式的值,而該語(yǔ)句逗號(hào)后面的表達(dá)式是 printf(” Second = %d”, i),也就是for循環(huán)的判斷語(yǔ)句其實(shí)是要判斷 printf(” Second = %d”, i)是真還是假,那么我們只要知道printf(” Second = %d”, i)的值即可。
先提一個(gè)知識(shí)點(diǎn),printf函數(shù)的返回值是函數(shù)在標(biāo)準(zhǔn)輸出上輸出的實(shí)際字符的個(gè)數(shù),根絕這點(diǎn),我們可以知道printf(” Second = %d”, i)語(yǔ)句永遠(yuǎn)不會(huì)為0,因?yàn)樵撜Z(yǔ)句必定會(huì)在屏幕輸出字符,那么for循環(huán)的判斷語(yǔ)句就會(huì)一直是真,所以程序是個(gè)死循環(huán)。
總結(jié)
- 上一篇: 计算机辅助设计还需要手绘吗,西安电脑如此
- 下一篇: java thread 多线程_java