大家都知道if语句后面的()里面均为表达式,该表达式通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式,判断等于运算符(==)两边的操作数是否相等的表达式等,甚至也可以是一个变量。而我今天主要讲的就是大家或许很容易出错的地方,就是在使用等于运算符(==)来判断两边的操作数是否相等的时候,我们往往会因为不细心或者打字过快,很容易少打了一个=符号,这时就会变成赋值表达式,就不是我们想要的判断两操作数是否相等,真就返回1,假就返回0的表达式了,小编曾经也在此处出现过许多的错误,我们就举些例子来看看这里面的区别吧!
例题:首先自定义两个变量并初始化,用if语句判断,当两变量相等时,进行输出,当不相等时,也进行输出?
#include <stdio.h>
void main()
{
int a = 2, b = 3;
if (a == b)
{
printf("a equal b!\n");
}
else
{
printf("a not equal b!\n");
}
}
此时程序运行的结果相信大家都知道。
假如当我们不小心将a == b写成了a = b,这时候程序都只执行if后面的语句,不管a是否真的等于b,程序都不会去执行else后面的语句,因为当我们少写了一个=的时候,就不是进行判断表达式是否真假了,就直接是个赋值表达式,赋值表达式的值始终为真了。所以当我们判断两操作数是否相等时,一定要引起注意,引起注意!
#include <stdio.h>
void main()
{
int a = 2, b = 3;
if (a = b)
{
printf("a equal b!\n");
}
else
{
printf("a not equal b!\n");
}
}
程序运行的结果就是错误的了!
小编写这篇文章也是为了提醒大家和自己引起足够的注意,因为这个地方太容易出错误了。要是觉得文章不错,就给小编点个赞吧!要是有什么不正确的地方,请在下方给我评论,小编一定虚心请教。