判断语句=和==的不同(神坑)+自增/减运算符的例题(神坑+1)

之前做的PTA有个填空,死也想不出来错在哪里
先上题:
判断语句=和==的不同(神坑)+自增/减运算符的例题(神坑+1)_第1张图片
我一开始扫了一遍代码,发现x只出现在if的判断语句里,就觉得x输入什么就是什么值(于是乎我就错了)


错没关系呀,可是不知道自己错在哪不就白痴了吗?我甚至还在想是不是负号“ - ”没法被录入(拿不住所以偷偷试了一下,负号可以正常录入,你们全当不知道好吧 = = )

这也许是编程小白很容易陷入的一个误区:判断语句不会使变量变化
也许在codeblock上是这样(因为CB上判断语句不能用赋值“=”,只能用等于“==”)但世界上编程软件多了去了,我们应该从语法角度出发去审视、深思

仔细看第二个if语句的判断语句,你会发现它写的是:x=0而非x==0
所以当x<0时,执行第二个if语句的时候,x的值就发生改变了

最后答案应该是 。10 。 0



最后再加一个我考试时没思路直接跳的填空题,有关自增/减的,就当例题用了好吧
在这里插入图片描述
先说我自己算的:6
我查查答案先(ing。。。)
emmmmm,果然又算错了,答案是7,但我思路没错,如下:

首先()? : 这相当于是个if语句,判断语句为++a==b–,自增++在a的前面,a先自增在代入运算,所以= =左边的值为5+1=6,然后来看= =右边b–,因为–在b的右边,所以b先代入运算再自减,所以= =右边的值为6,两边相等,所以执行真语句,也就是++a,可是要记住在判断的时候a已经自增1了,而且这里++也是在a左边,所以最后输出的值应该是(5+1)+1=7
(我就是粗心忘了判断语句时a已经自增了所以写了6.。。。)

由此可见,自增/减真的是个大坑,专坑马大哈。。。

你可能感兴趣的:(软件总结)