首页 > 其他分享 >嵌入式学习第五天:逻辑运算、选择语句...

嵌入式学习第五天:逻辑运算、选择语句...

时间:2024-07-28 13:28:27浏览次数:16  
标签:语句 ... 逻辑 逻辑运算 嵌入式 运算符 && break 表达式

目录

c语言流程控制

关系运算符

逻辑运算符

&&逻辑与

||逻辑或

判断闰年

!逻辑非

逻辑表达式

选择语句

if语句

形式1

形式2

形式3

条件运算

switch语句


c语言流程控制

  • 顺序结构
  • 选择结构(分支结构)
  • 循环结构

任何一个程序都是由这三种结构组合而成。

通过比较提供判断的依据,进行选择。c语言通过关系运算和逻辑运算构造选择判断的条件。

关系运算符

逻辑运算符

&&逻辑与

一假则假

||逻辑或

一真则真

&&和||都有短路特性(截断特性),先计算左边的表达式

表达式1&&表达式2

只有表达式1为真时,才需要继续判别表达式2的值

表达式1 || 表达式2

只有表达式1为假时,才需要继续判别表达式2的值

例子代码如下:

int a = 1;
int b = 0;

b = a++ && a > 0;
printf("a = %d b = %d\n",a,b);//a = 2 b = 1

b = a < 0 && ++a;
printf("a = %d b = %d\n",a,b);//a = 1 b = 0

b = a < 0 || ++a;
printf("a = %d b = %d\n",a,b);//a = 2 b = 1

b = a > 0 || ++a;
printf("a = %d b = %d\n",a,b);//a = 1 b = 1

判断闰年

考虑普通闰年和世纪闰年。

(year % 4 == 0 && year % 100 != 0) || year % 400 == 0

仅仅用year % 4 == 0判断是不对的,忽略了对世纪年的特殊处理。

这个条件仅判断一个年份能否被4整除。虽然大部分闰年都能被4整除,但这个条件并不够准确,因为它忽略了能被100整除但不能被400整除的年份(例如:1900年不是闰年,但可以被4整除)。

!逻辑非

真假相对、取反

优先级:!——>&&——>||

逻辑表达式

用逻辑运算符将关系表达式或逻辑量连接起来的式子。逻辑表达式的结果要么"真",要么"假"。

c语言中如何表示"真"和"假"

整型1——真、整型0——假

系统如何判断一个量的"真"和"假"

规定:

0为假

从数值角度看,其值为0

0,'\0',NULL(空指针——编号0地址)都为假

非0就是真

从数值角度看,其值不为0

1、2、3...-1、-2....'a'、'b'等都为真

C语言中通过关系运算和逻辑运算构造选择判断的条件

选择语句

if语句

形式1

处理单个情况、单分支

语法形式:

if(表达式)

{

        语句

}//复合语句

语义:如果,表达式为真——执行语句——语句执行完——if语句结束——程序继续往下

如果,表达式为假——if语句结束——程序继续往下

形式2

处理两种情况、双分支

语法形式:

if(表达式)

{

        语句1

}

else

{

        语句2

}

语义:如果,表达式为真——执行语句1——语句1执行结束——表示if语句结束——程序继续往下

表达式为假——执行语句2——语句2执行结束——表示if语句结束——程序继续往下

形式3

处理多种情况、多分支

语法形式

if(表达式1)

{

        语句1

}

else if(表达式2)

{

        语句2

}

else if(表达式3)

{

        语句3

}

.

.

.

else if(表达式m)

{

        语句m

}

else

{

        语句n

}

条件运算

表达式1?表达式2:表达式3

这是唯一的三目运算符。条件运算实际上就是if-else简写

语义:

判断表达式1

——真:执行表达式2

——假:执行表达式3

switch语句

语法形式

switch(表达式)

{

        case 常量表达式1:

                语句1

                break;

        case 常量表达式2:

                语句2

                break;

        .

        .

        .

        case 常量表达式n:

                语句n

                break;

        default:

                语句n+1;

                break;

}

语义:

求解表达式,用表达式结果与下面case后的常量表达式的结果进行匹配,匹配成功则执行对应case下的语句,直到遇到break或者switch语句  '}'  (右花括号)则结束。

注意:

switch后面表达式,必须是一个整型表达式(不能是浮点型)

case后面是一个整型常量表达式(不能出现变量)

label标签:可以给执行语句起一个标签,标签来代表这句话

default不一定写在最后,看需求放在哪里都可以,但是default最好也写上break

标签:语句,...,逻辑,逻辑运算,嵌入式,运算符,&&,break,表达式
From: https://blog.csdn.net/weixin_62409078/article/details/140731438

相关文章

  • 使用yolov8训练时如何解决“内核......似乎已经死亡”?
    我想用yolov8训练我的模型,但开始训练后出现此错误:ultralytics/datasets/lollipop/Untitled.ipynb的内核似乎已死亡。它将自动重新启动。我有GTX1650,内存为4GB,这是我的代码:importtorchfromultralyticsimportYOLO#Loadthemodelmodel=YOLO('yolov......
  • 关于嵌入式那些事?
    嵌入式系统,作为现代科技的核心之一,无处不在。从智能家居到汽车电子,再到医疗设备,嵌入式系统的应用无所不包。今天,我们来聊聊嵌入式那些事,揭开它神秘的面纱。如今,物联网、AI、5G的发展都离不开嵌入式系统,它就好比一个乐高拼图,只要你会“玩”,就会发生意想不到的性能。那么到底什......
  • 震惊,刷新我的认知,医疗信息数据库sqlserver中计算年龄的sql函数写了200行...
    创作不易只因热爱!!热衷分享,一起成长!“你的鼓励就是我努力付出的动力”sqlserver中年龄计算,HIS系统中年龄计算函数呈现的结果要求:1周岁内显示"几月几天",1周岁以上显示"几岁"CREATEFUNCTIONdbo.FUN_GETBRNL( @birthvarchar(24),--生日 @now......
  • Linux: 更新系统相关依赖命令yum update执行失败: One of the configured repositorie
    环境:CentOS7(ISO映像文件=CentOS-7-x86_64-DVD-2009.iso)解决思路:系统repo镜像源连接问题导致执行失败,切换repo为国内源即可#切换仓库镜像源curl-o/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-7.repo#或者wget-O/etc/yum.rep......
  • FrameBuffer 应用编程-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板
    FrameBuffer应用编程什么是Framebuffer设备Framebuffer定义:Framebuffer是帧缓冲,指一块内存,用于保存一帧图像Linux系统中的Framebuffer:在Linux系统中,Framebuffer是一种显示驱动接口,抽象并屏蔽了不同显示设备的硬件细节,对应用层提供了一块显示内存(显存)Framebuf......
  • VB中的条件语句(如If...Then)是如何工作的
    VB(VisualBasic)中的条件语句,特别是If...Then语句,是控制程序流程的重要手段之一。这些语句允许程序根据特定条件执行不同的代码块。以下是If...Then语句在VB中工作的详细解释:基本结构If...Then语句的基本结构分为单行格式和多行(块状)格式。单行格式vb复制代码If条件Then......
  • 快醒醒,别睡了!...讲《数据分析pandas库》了—/—<4>
    一、废话不多说,直接开讲1、DataFrame的索引和切片1.1 选择列        当想要获取df中某列数据时,只需要在df后面的方括号中指明要选择的列即可。如果是一列,则只需要传入一个列名;如果是同时选择多列,则传入多个列名即可(注意:多个列名用一个list存放)#获取一列......
  • 嵌入式小白递第四天——输入输出
    目录输入输出1.输入输出概念2.输入输出功能3.输入输出函数1).getchar/putchar函数getchar函数:putchar函数:2)print和scanf函数print函数(格式化输出函数):scanf函数(格式化输入函数):4.输入缓冲区输入输出1.输入输出概念输入是将数据通过外设设备输入到计算机内存中去......
  • 嵌入式小白第三天——数据类型 运算符 表达式
    目录运算符表达式运算符1.运算符的优先级和结合性2.运算的对象的个数3.表达式4.算术运算(+-*/%)/号%号5.自增运算符与自减运算符(++--)a++与++a区别左值与右值问题6.赋值运算7.逗号运算(顺序求值运算)8.强制类型转换9.隐式类型转换10.不同类型间的混合赋值......
  • 嵌入式领域的专业名词大揭秘
    在嵌入式这个充满技术魅力和创新挑战的领域中,有许多特定的专业名词,对于初学者或者想要深入了解的朋友来说,熟悉这些名词是踏入嵌入式世界的重要一步。下面就让我们一起来探索一下嵌入式领域常见的专业名词。https://ad.pdb2.com/l/CPCeKnK8DHfjEiN1.微控制器(MCU):可以把它想象成......