[英]Why does this program not give the expected output?
这个程序(用C语言编写)不会输出我期望的结果:
int main()
{
int i, j ;
for ( i = 1 ; i <= 2 ; i++ )
{
for ( j = 1 ; j <= 2 ; j++ )
{
if ( i == j )
continue ;
printf ( "\n%d %d\n", i, j ) ;
}
}
}
我认为应该
1 2 1 3 2 1 2 3
但是程序输出
1 2 2 1
为什么是这样?
循环索引永远无法达到3号。
i
和j
的值j
以下顺序:
i j
---
1 1
1 2
2 1
2 2
请注意, i++
和j++
增量在循环体的每次迭代之后发生。
调用printf
的唯一情况是i
和j
不同。 那意味着你得到:
1 2
2 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.