在写代码过程中遇到一个关于for循环的问题,附上代码,忘大神解惑
#include<iostream>
using namespace std;
int main()
{
for(int m=0,n=0;m>=0,n<8;m--,n++)
{
cout<<m<<" "<<n<<endl;
}
return 0;
}
输出结果是
0 0
-1 1
-2 2
-3 3
-4 4
-5 5
-6 6
-7 7
在写代码过程中遇到一个关于for循环的问题,附上代码,忘大神解惑
#include<iostream>
using namespace std;
int main()
{
for(int m=0,n=0;m>=0,n<8;m--,n++)
{
cout<<m<<" "<<n<<endl;
}
return 0;
}
输出结果是
0 0
-1 1
-2 2
-3 3
-4 4
-5 5
-6 6
-7 7
for(int m=0,n=0;m>=0,n<8;m--,n++)
{
cout<<m<<" "<<n<<endl;
}
相当于
int m=0,n=0;
while(n<8)
{
cout<<m<<" "<<n<<endl;
m--;
n++;
}
注意
m>=0,n<8
这是逗号表达式,表达式的结果是后面那个表达式的结果,因此m>=0是一个无效的条件,无论成立不成立,都不影响循环结果
因为m n各自初始值都是0
第一次输出
0 0
后面每次m少1,n大1
所以
后面依次是
-1 1
-2 2
...
当n=8的时候,循环条件不满足,退出,所以
最后一行是
-7 7