当前位置: 代码迷 >> C语言 >> [求助]while的问题
  详细解决方案

[求助]while的问题

热度:221   发布时间:2006-10-16 21:14:12.0
[求助]while的问题

在下面的代码中,假设i和j的值在循环体中不变,以下这些代码能导致无限循环吗?为什么?
printf("Input two integers:");
scanf("%d%d",&i,&j);
while(i*j < 0 && ++i != 7 && j++ !=9)
{
......... /*do somthing*/

}


----------------解决方案--------------------------------------------------------

不会,从式子看,i,j随便一个负,那么另一个一定为正,&&这个为与,由些可看不会死循环.


----------------解决方案--------------------------------------------------------

不会是死循环的!因为是&&,看你输入!还有楼主的图像怎么不动了???


----------------解决方案--------------------------------------------------------
哦,谢谢啊!~~
我的图象吗?动着的啊!~~
----------------解决方案--------------------------------------------------------
要么不循环,要么是循环,不会死循环.to神经塔是在动啊!
----------------解决方案--------------------------------------------------------
以下是引用C语言学习者在2006-10-16 21:31:42的发言:
要么不循环,要么是循环,不会死循环.to神经塔是在动啊!

神经塔是什么意思啊?
呵呵!~~~


----------------解决方案--------------------------------------------------------

呵呵,不好意思,我自己把internet的属性给改了!忘记了!


----------------解决方案--------------------------------------------------------
以下是引用yjbqq在2006-10-16 21:14:12的发言:

在下面的代码中,假设i和j的值在循环体中不变,以下这些代码能导致无限循环吗?为什么?
printf("Input two integers:");
scanf("%d%d",&i,&j);
while(i*j < 0 && ++i != 7 && j++ !=9)
{
......... /*do somthing*/

}

1.若i,j同号或i,j都为0,则i*j>=0恒成立,故循环体根本不会执行.
2.若i,j异号,则并定有一个为正,这个正数(在执行若干次++操作之后)并定会导致与7或,9相等(当然那个负数经过若干次++操作后也可能先达到7),故循环体也未执行.

因此,循环会在有限次内结束.

----------------解决方案--------------------------------------------------------
要么不循环,要么是循环,不会死循环说给楼主你,而神经塔是在动啊!本人说给神经塔
----------------解决方案--------------------------------------------------------

彻底明白了,多谢大家啊!~~


----------------解决方案--------------------------------------------------------
  相关解决方案