題目形式雖然簡單,但我的理解不是很清楚,請朋友們講解的透出些,謝謝大家。A題如下:for(;;);請問上題為什么會構成死循環?B題如下:int s=36;while(s); --s;請問上題為什么會構成死循環?

熱心網友

for(;;)中,第1個表示循環變量的初始值;第2個參數表示繼續循環的判斷條件;第3個參數表示循環控制變量的遞加量。當第2個為空時不作判斷,成死循環,此時與1、3個無關。while()中的參數為邏輯量,非0表示真。后面的--s因為之前有個“;”號,被隔在循環體外,所以s的值永遠=36。

熱心網友

for(;;)中的第一個分號前的表達式表示條件的初始直,第二個是判斷表達式用來判斷是否退出循環,第三個表達式是用來表示條件的變化值所以第一個空沒初始直,第二個空表示一直循環,第三空沒有退出條件 同時for(;;)等同while(1);while(36)表示永遠為真所以做循環但while語句是做到第一個分號就結束的所以無法作到--s;所以就是死循環如果要正確那while(s) --s;