2个回答
展开全部
你这个错误是一个简单又特别容易犯的错误。
在C语言中,我们需要搞清楚=和==的差别:
1、=,一个等号,在C语言中,只是代表的赋值操作。
2、==,两个等号,在C语言中,才是代表的判断相等的。
而你的程序的if中,写的是一个=号,所以程序会先执行a=x+y,然后才将a的值作为if的判断条件,这个时候,你的a为0,这if不进入,a不为0,则进入。所以你的if语句才会一直执行。当然,也并不是永远都会进入的,如果你的x+y正好等于0,那么if条件就不会成立了,但是在你的程序中x和y都是正数,所以永远都会执行。
那么对于这种容易犯的错误该怎么避免了?
1、要牢记=和==的区别。
2、我们一般会将常量、表达式等不能被修改的值写到==的左边,这样即使你忘记写了一个=,那么在编译的时候编译器就能清晰的给你显示错误信息,因为常量、表达式不能被赋值,这样就能很好的避免错误,还能借住编译器给出错误信息。
比如:
if(a == 0) --> if(0 == a)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询