陈奕迅的大开眼戒:C语言菜鸟求助!!!!

来源:百度文库 编辑:高校问答 时间:2024/04/28 19:40:14
已知x=3,y=2,为什么1>while(x=y {x--;continue;}循环无数次而2>while(x=y {y--;continue;}只能循环两次???
“y--两次后,y=0;x=0;x=y表达式为FALSE”

为什么这个时候表达式会为FALSE?

赋值表达式(例如 x=y )在进行逻辑判断的时候,最后取的值是表达式左边的值,即,对x的值进行判断(当然,在判断前已经赋值了).
由此.
y=2;

while(x=y )
{x--;
continue;}
每一次对(x=y)进行判断的时候,都是先把y的值赋给x,然后对x进行判断.
故,x的值始终为2.循环无法终止

while(x=y)
{y--;
continue;}
明显的,y在自减两次后变为0,此时赋值给x,那么x也为0,对x进行判断,条件为0,退出while.

while(x=y {x--;continue;}
条件 x=y;而不是x==y;
y在循环体内,没做任何改变,x=y;x=2永远为TRUE。当然循环无数次。

while(x=y {y--;continue;}
同理,y--两次后,y=0;x=0;x=y表达式为FALSE,退出