为什么这个程序没有给出预期的输出?

时间:2012-08-20 15:31:55

标签: c for-loop int

这个程序(在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

这是为什么?

2 个答案:

答案 0 :(得分:4)

循环指数无法达到3号。

答案 1 :(得分:1)

ij的值贯穿以下顺序:

i j
---
1 1
1 2
2 1
2 2

请注意,i++j++增量在循环体的每次迭代后发生。

调用printf的唯一情况是ij不同。这意味着你得到:

1 2
2 1