while語句的原型是while(表達式)語句,當表達式爲非0值時,執行while語句中的嵌套語句。
那麼while(1)其中1代表一個常量表達式,他永遠不會等於0。所以,循環會一直執行下去。除非你設置break等類似的跳出循環語句循環纔會中止
while(i--)其中i是一個變量,因此表達式i--有不同的值,依次遞減,i--是先取值後減,--i先加後取值,所以i--的值同未執行該自減運算時的i相等。因此當i爲0時,循環會跳出
很容易混淆的是把i--的值誤認爲i執行自減後的值,可以編個小程序驗證下
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
int i=1;
while(i--)//此時i=0
{
i--;//執行該語句i爲-1
break;
}
cout<<i;
system("pause");
}
輸出爲-1,說明執行了循環內i--的語句