关于while(i–)和while(–i)的理解
已知while( p ){ } 意为表达式p为真时执行{ }中的内容 ,p为假则不执行。
已知while( 1 ) 和 while( n ) 功能一样,表示永真循环 (n表示任意一个正整数)
while( 0 ) 不执行{}中内容
又已知 i–是先使用i的值,再执行i=i-1操作;–i是先执行i=i-1操作,再使用i的值
综上可知,while(i–) 的意思是 先使用i的值和0比较大小,再执行i=i-1。若前面的判断结果是大于0,表示条件为真,则执行循环内容,反之则不执行。继续while循环,直到判断结果为i=0,循环结束。
请看下面例子:
#include<iostream>
using namespace std;
int main(){
int i=10;
while(i--){
cout<<i<<endl;
}
}
while(–i) 的意思是 先执行i=i-1,再使用i的值和0比较大小。若前面的判断结果是大于0,表示条件为真,则执行循环内容,反之则不执行。继续while循环,直到判断结果为i=0,循环结束。
请看下面例子:
#include<iostream>
using namespace std;
int main(){
int i=10;
while(--i){
cout<<i<<endl;
}
}
两次结果的差异仅在于i=1的时候,i–先比较大小,再自减,能够输出i=0;
–i是先自减,再比较大小,这时i=0,条件为假,不能输出i=0。