C语言操作符if语句好习惯 详解分析操作符(详解4)

简介: C语言操作符if语句好习惯 详解分析操作符(详解4)

各位少年:

前言

还记得我们上一章讲过一个比较抽象的代码,它要比较两次都是真的情况下才能打印,那么很显然这样写代码是有弊端的?哪我们C语言之父丹尼斯.里奇,先介绍一下上次拉掉了if语句的好习惯


好再分享一些操作符


C语言用于比较表达式,称为关系表达式,里面使用的运算符就称为关系运算符,主要有下面6个

<大于运算符
>小于运算符
>=大于等于运算符
<=小于等于运算符
==相等运算符
!=不相等运算符

         代码示例

int main()
{
int a=3;
if(5=a)//赋值
printf("hehe\n");
return 0;
}


很明显这个if语句的表达式出错了,我们想比较结果我们写成了赋值,很显然结果只要是非零,都会打印,

所以为了避免这样的错误很多老C/C++程序员,都把常量放在前面看代码例子。

#include<stdio.h>
int main()
{
int a=3;
if(5==a)
printf("hehe\n");
return 0;
}


建议这样写减少报错的可能,因为常量没办法改变,这样写如果只写一个等号,就会报错 这样就不会出现

第一个代码图的情况了。


面试官也会认同你这种写法的,虚伪大家能能融会贯通,希望对大家有所帮助。

好,我们再来分享个代码,多个关系运算符不宜连用。

i<j<k


上面示例中,连续使用两个小于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果,即不是

保证变量j的值在i和k之间。因此关系运算符是从左到右计算,所以实际执行的是下面的表达式。

(i<j)<k


 上面式子中,i<j返回0和1,所以最终是0和1与变量k进行比较。 如果想要判断变量j的值是否在i和k之间,

应该用下面的写法  。

if(x<y&&y<x)//&&并且


这个表达式的结果必须两边必须都是真


条件操作符

exp1?exp2;exp3


表达式1

真                表达式2计算,表达式3不计算,表达式2的结果是整个表达式的结果                            假                表达式2不计算,表达式3计算,表达式3的结果 是整个表达式的结果


好我们看两端代码

if (a > 5)
    b = 3;
  else
    b = -3;

  这里是不是就很复杂了 大家想到用三目操作符,好我们来给三目操作符的写法,分享给大家

#include<stdio.h>
int main()
{
  int a = 0;
  int b = 0;
  scanf("%d", &a);
  b = (a > 5 ? 3 : 3);
  printf("%d", b);
  return 0;
}

       

逻辑运算 符提供逻辑判断功能,由于构建更复杂的表达式,主要看下面三个运算符 。


| :逻辑取反运算符(改变单个表达式的真假)


&& :与运算符,就是并且的意思(两边都为真,只要一边为假,就不会执行)


||或运算符,就是或者的意思(两侧至少有一个表达式真,则为真,负则为假)


C语言中非0表示真 0表示假


逻辑取反运算符

a=!a
非0取反后是0
0 1

我来分享个代码示例,用与运算符和或运算符,来判断闰年,我们都知道闰年的判断方式,我们数学课本中对闰年判断能不能被四整除,但其实还有几个点能被四整除的时,不能被100整除,或者能被四百整除,好大家知道了,我们上代码,希望对大家有所帮助。

#include<stdio.h>
int main()
{
  int year = 0;
  scanf("%d", &year);
  if (((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)))
  {
    printf("是闰年\n");
  }
  else
  {
    printf("不是闰年\n");
  }
  return 0;
}

好大家能理解上面的代码的话,我们再来介绍个东西,叫做短路。


相关文章
|
4天前
|
C语言
C语言之操作符1
C语言之操作符1
12 0
|
6天前
|
编译器 C语言
操作符详解(C语言基础深入解析)
操作符详解(C语言基础深入解析)
|
19天前
|
存储 编译器 C语言
爱上C语言:操作符详解(下)
爱上C语言:操作符详解(下)
|
19天前
|
C语言
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
|
2月前
|
算法 测试技术 C语言
【C语言】异或(^)操作符
【C语言】异或(^)操作符
16 0
|
2月前
|
存储 算法 编译器
【c 语言 】移位操作符详解
【c 语言 】移位操作符详解
40 0
|
2月前
|
存储 程序员 C语言
c语言的if语句举例
c语言的if语句举例
14 0
|
2月前
|
存储 编译器 程序员
C语言第十六弹---操作符(下)
C语言第十六弹---操作符(下)
|
1天前
|
C语言
【精通C语言】:分支结构if语句的灵活运用
【精通C语言】:分支结构if语句的灵活运用
10 1
|
4天前
|
编译器 C语言
C语言操作符2
C语言操作符2
4 0