0

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

为什么是这样?

4

2 回答 2

4

循环的索引永远无法达到数字 3。

于 2012-08-20T15:35:04.260 回答
1

的值ij经历这个序列:

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

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

你被调用的唯一情况printf是在哪里i并且j是不同的。这意味着你得到:

1 2
2 1
于 2012-08-20T15:38:34.847 回答