这个程序(在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
这是为什么?
答案 0 :(得分:4)
循环指数无法达到3号。
答案 1 :(得分:1)
i
和j
的值贯穿以下顺序:
i j
---
1 1
1 2
2 1
2 2
请注意,i++
和j++
增量在循环体的每次迭代后发生。
调用printf
的唯一情况是i
和j
不同。这意味着你得到:
1 2
2 1