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;
}

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


相关文章
|
5月前
|
前端开发 C语言
C语言06-HelloWorld执行流程分析
C语言06-HelloWorld执行流程分析
C语言06-HelloWorld执行流程分析
|
4月前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
21天前
|
存储 网络协议 C语言
【C语言】位操作符详解 - 《开心消消乐》
位操作符用于在位级别上进行操作。C语言提供了一组位操作符,允许你直接操作整数类型的二进制表示。这些操作符可以有效地处理标志、掩码、位字段等低级编程任务。
65 8
|
21天前
|
C语言
【C语言】逻辑操作符详解 - 《真假美猴王 ! 》
C语言中有三种主要的逻辑运算符:逻辑与(`&&`)、逻辑或(`||`)和逻辑非(`!`)。这些运算符用于执行布尔逻辑运算。
62 7
|
4月前
|
存储 C语言 索引
【C语言篇】操作符详解(下篇)
如果某个操作数的类型在上⾯这个列表中排名靠后,那么⾸先要转换为另外⼀个操作数的类型后执⾏运算。
88 0
|
4月前
|
程序员 编译器 C语言
【C语言篇】操作符详解(上篇)
这是合法表达式,不会报错,但是通常达不到想要的结果, 即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执⾏的是下⾯的表达式。
300 0
|
23天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
54 1
|
2月前
|
存储 缓存 C语言
【c语言】简单的算术操作符、输入输出函数
本文介绍了C语言中的算术操作符、赋值操作符、单目操作符以及输入输出函数 `printf` 和 `scanf` 的基本用法。算术操作符包括加、减、乘、除和求余,其中除法和求余运算有特殊规则。赋值操作符用于给变量赋值,并支持复合赋值。单目操作符包括自增自减、正负号和强制类型转换。输入输出函数 `printf` 和 `scanf` 用于格式化输入和输出,支持多种占位符和格式控制。通过示例代码详细解释了这些操作符和函数的使用方法。
48 10
|
2月前
|
存储 编译器 C语言
【C语言】简单介绍进制和操作符
【C语言】简单介绍进制和操作符
188 1
|
2月前
|
存储 编译器 C语言
初识C语言5——操作符详解
初识C语言5——操作符详解
188 0