if语句里面如果是赋值语句

您所在的位置:网站首页 赋值语句如何判断正误问题 if语句里面如果是赋值语句

if语句里面如果是赋值语句

2024-07-10 13:20| 来源: 网络整理| 查看: 265

我们习惯了向if里面传递布尔值,如果为true就进入if语句块中;或者传入一个判断语句(表达式a==表达式b);或者传入数值,0为false,其他都为true。等等

初学者很容易在传入判断语句的时候将==写成=,而导致代码失误,这时会有什么情况发生呢?

编译器在编译代码的时候是不会报错的,程序可正常运行程序如何运行 来看一下这段代码: #include int main() { int a; scanf("%d",&a); if(a=1) { printf("if---%d\n",a); } else { printf("else---%d\n",a); } return 0; }

如果我输入2,程序会输出什么? 在这里插入图片描述 如果我输入0,程序会输出什么? 在这里插入图片描述

好像不管输入什么都会进入if,而且输出的a最后都是if语句中赋值的值了,这是怎么回事? 很明显,如果if语句里面是赋值语句的话,是执行赋值语句,再将赋值语句的最后结果作为判断条件,看是否要进入if语句。

看一下下面的代码:

#include int main() { int a; scanf("%d",&a); if(a=0) { printf("if---%d\n",a); } else { printf("else---%d\n",a); } return 0; }

在这里插入图片描述

赋值为0后,不论你输入什么都是进入else语句了~

还是建议不要在if语句中使用赋值语句,这样程序不会报错,很容易带来超出预期的结果。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3