void main()
{ int x=8;
for(;x>0;x--)
{ if(x%3) { cout << x-- ; continue;}
cout << --x ;
}
}
程序的运行结果是( )。
A) 7,4,2, B) 8,7,5,2, C) 9,7,6,4, D) 8,5,4,2,
这个答案为什么不是7,5,4,2?
具体是怎么跑的。。
void main()
{
int x=8;
for(;x>0;x--)
{
if(x%3) {
cout << x-- ;
continue; // 进入这里后,下面的 cout << --x ; 就不会执行了
}
cout << --x ;
}
}
第一次循环,x为8,因为8%3 为真,所以进入if语句,打印 cout <<x-- , 这里是先打印x,然后在--x
x--是先使用再减, 所以先输出8
void main()
{
int x = 8 ,i = 1;
for(;x>0;x--)
{
if(x%3)
{
cout << x-- << " " << i ++ <<endl;
continue;
}
cout << --x << " " << i ++ <<endl;
}
}
这个代码会详细告诉你运行的步骤。。。
你没有理解x--和--x的关系,cout<<x--,是i先输出x,再执行x-1,你的疑惑跟contiune无关
x--是后置操作,--x是前置操作,