c语言while循环问题求解


 #include 
 int main()
{
 int i =0, j =0;
  while(i <5, j <10)
 {
i++;
 j++;
 }
 printf("%d, %d\n", i, j);
 return 0;
 }

为什么输出的是10,10呢
为什么不是5,5呢?不是在i=5就已经停止循环了吗?

望采纳

  • 在这个程序中,while循环的条件是i < 5,j < 10。这是一个逗号表达式,它会按照从左到右的顺序依次计算每个表达式的值,然后返回最后一个表达式的值。
  • 在这个程序中,当i的值小于5时,循环条件仍然成立。每次循环,i和j都会增加1。因此,当i和j都大于等于10时,循环条件就不再成立,循环终止。
  • 所以,输出的结果是10,10,而不是5,5。

如果你想要在i等于5时停止循环,可以使用以下代码:

while (i < 5)
{
    i++;
    j++;
}
  • 逗号表达式的结果是 最右边的表达式的结果,也就是 j < 10,这才是while循环的判定条件;
  • 你把 i < 5 和 j < 10 位置调换一下看看