当前位置: 首页 > news >正文

【C语言】分支和循环(2)

🤔个人主页: 起名字真南
😙个人专栏:【数据结构初阶】 【C语言】 【C++】

请添加图片描述

目录

  • 1 关系操作符
  • 2 条件操作符
  • 3 逻辑操作符 :|| ,&& ,!
    • 3.1 逻辑取反运算符
    • 3.2 与运算符
    • 3.3 或运算符
    • 3.4 练习闰年判断
    • 3.5 短路
  • 4 switch语句
    • 4.1 switch和if语句的对比
  • 5 while循环

1 关系操作符

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

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

下面是一些例子

#include<stdio.h>int main()
{int a, b;a > b;a > b;a >= b;a <= b;a == b;a != b;return 0;
}

关系表达式通常返回0或1用来表示真假,其中1代表真0代表假。
关系表达式常用于if或while结构
在这里插入图片描述
注意相等运算符==和赋值运算符=非常容易混淆,另一个需要注意的就是关系运算符注意连用

2 条件操作符

条件操作符也叫做三目操作符需要有三个操作数形式如下

在这里插入图片描述
条件操作符的计算逻辑是:如果exp1 为假,exp1 为真,exp2 计算,计算的结果是整个表达式的结果;如果exp3 计算,计算的结果是整个表达式的结果。

int main()
{int a = 0;int b = 0;scanf("%d", &a);if (a > 3){b = 5;}else {b = -5;}printf("%d\n", b);//使用条件操作符scanf("%d", &a);b = a > 3 ? 5 : 5;printf("%d\n", b);return 0;
}

3 逻辑操作符 :|| ,&& ,!

逻辑运算符提供逻辑判断功能,⽤于构建更复杂的表达式,主要有下⾯三个运算符

  • ! 逻辑取反运算符(改变单个表达式的真假)
  • || 或运算符,就是or或的意思两个表达式只要有一个为真就为真
  • && 与运算符,就是and和的意思两个表达式必须全为真就为真

3.1 逻辑取反运算符

在这里插入图片描述

3.2 与运算符

在这里插入图片描述
&& 就是与运算符,也是并且的意思,&&是⼀个双⽬操作符,使⽤的⽅式是
式都是真的时候,整个表达式才为真,只要有⼀个是假,则整个表达式为假。

3.3 或运算符

在这里插入图片描述
|| 就是或运算符,也就是或者的意思,|| 也是⼀个双⽬操作符,使⽤的⽅式是a || b ,||两边的表达式只要有⼀个是真,整个表达式就是真,两边的表达式都为假的时候,才为假。

3.4 练习闰年判断

int main()
{int year;printf("请输入一个年份:");scanf("%d", &year);if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)){printf("闰年");}else{printf("不是闰年");}return 0;
}

3.5 短路

C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。

计算下列代码的值

	int i = 0, a = 0, b = 2, c = 3, d = 4;//i = a++ && ++b && d++;i = a++||++b||d++;printf("a = %d\nb = %d\nc = %d\nd = %d\n", a, b, c, d);

4 switch语句

除了if 语句外,C语⾔还提供了switch 语句来实现分⽀结构。switch 语句是⼀种特殊形式的if…else 结构,⽤于判断条件有多个结果的情况。它把多重else if 改成更易⽤、可读性更好的形式。

在这里插入图片描述

  • 注意switch后的条件必须是整形表达式
  • 每一个case后面要加上一句break用来跳出语句

4.1 switch和if语句的对比

int main()
{int a = 0;scanf("%d", &a);if (a % 3 == 0){printf("余数为0");}else if(a % 3 == 1){printf("余数为1");}else if (a % 3 == 2){printf("余数为2");}//switch (a % 3){case 0:printf("余数为0");break;case 1:printf("余数为1");break;case 2:printf("余数为2");break;}
}

注意:在使⽤break ,或者在哪⾥使⽤switch 语句的时候,我们经常可能遇到⼀种情况,⽐如配代码中的switch 后的表达式中的值⽆法匹case 语句的时候,这时候要不就不做处理,要不就得在switch 语句中加⼊default ⼦句。
关于default和case的顺序问题:
在switch语句中case⼦句和default⼦句有要求顺序吗?
default只能放在最后吗?
其实,在switch语句中case语句和default语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。不过我们通常是把default⼦句放在最后处理的。

5 while循环

在这里插入图片描述
while语句的形式括号里面的时判断条件如果条件为真则进行{}内的语句如果条件为假则不执行,如果条件一直为真则会造成死循环。注意循环条件。

相关文章:

【C语言】分支和循环(2)

&#x1f914;个人主页: 起名字真南 &#x1f619;个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 关系操作符2 条件操作符3 逻辑操作符 &#xff1a;|| &#xff0c;&& &#xff0c;&#xff01;3.1 逻辑取反运算符3.2 与运算符3.3 或运算符3.4 练习闰年判断3.5 短…...

Python数据分析-远程办公与心理健康分析

一、研究背景 随着信息技术的飞速发展和全球化的推进&#xff0c;远程工作&#xff08;Remote Work&#xff09;成为越来越多企业和员工的选择。尤其是在2020年新冠疫情&#xff08;COVID-19&#xff09;爆发后&#xff0c;全球范围内的封锁措施使得远程工作模式迅速普及。根据…...

LabVIEW提高开发效率技巧----使用动态事件

在LabVIEW开发过程中&#xff0c;用户交互行为可能是多样且不可预知的。为应对这些变化&#xff0c;使用动态事件是一种有效的策略。本文将从多个角度详细介绍动态事件的概念及其在LabVIEW开发中的应用技巧&#xff0c;并结合实际案例&#xff0c;说明如何通过动态事件提高程序…...

【STM32开发之寄存器版】(五)-窗口看门狗WWDG

一、前言 窗口看门狗简介&#xff1a; 窗口看门狗通常被用来监测&#xff0c;由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新&#xff0c;看门狗电路在达到预置的时间周期时&#xff0c;会产生一个M…...

Leetcode203.移除链表元素-Python

题目链接&#xff1a;203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&a…...

属性拷贝MapStruct

端请求通过VO对象接收&#xff0c;并通过DTO对象进行流转&#xff0c;最后转换成DO对象与数据库DAO层进行交互&#xff0c;反之亦然。 当业务简单的时候&#xff0c;可以通过手动编码getter/setter函数来复制对象属性。但是当业务变的复杂&#xff0c;对象属性变得很多&#x…...

Chromium 添加书签功能浅析c++

1、在点击添加书签时候此UI控制逻辑代码在 chrome\browser\ui\views\bookmarks\bookmark_bar_view.cc chrome\browser\ui\views\bookmarks\bookmark_bar_view.h 可以在此看到完成 移除 按钮逻辑&#xff0c;以及书签监听事件等。。。 // Implementation for BookmarkNodeAdd…...

Spring Cloud Netflix Ribbon 负载均衡详解和案例示范

1. 引言 在传统的集中式架构中&#xff0c;负载均衡器一般是放置在服务器端的&#xff0c;例如 Nginx等。随着微服务架构的兴起&#xff0c;服务实例的数量和部署地点变得更加动态和分布式&#xff0c;这使得在客户端进行负载均衡成为了一种可行且更灵活的方案。Netflix Ribbo…...

Armeria gPRC 高级特性 - 装饰器、无框架请求、阻塞处理器、Nacos集成、负载均衡、rpc异常处理、文档服务......

文章目录 定义一个示例高级特性装饰器概述简单案例多种装饰方式 无框架请求概述使用方式 阻塞任务处理器背景概述多种使用方式 rpc 异常统一处理使用方式更详细的异常信息 Armeria 提供 gRPC 客户端多种调用方式同步调用异步调用使用装饰器 负载均衡简单案例Armeria 提供的所有…...

如何制作一个企业网站,建设网站的基本步骤有哪些?

企业网站是企业的门面和名片&#xff0c;决定网民对企业的第一印象&#xff0c;因此&#xff0c;现在很多公司想做一个属于自己网站&#xff0c;但是不知道怎么做&#xff0c;更不知道从何做起&#xff0c;更别说做成了。为了能够让大家清楚如何做一个企业网站&#xff0c;现在…...

01-python+selenium自动化测试-基础学习

前言 基于python3和selenium3做自动化测试&#xff0c;俗话说&#xff1a;工欲善其事必先利其器&#xff1b;没有金刚钻就不揽那瓷器活&#xff0c;磨刀不误砍柴工&#xff0c;因此你必须会搭建基本的开发环境&#xff0c;掌握python基本的语法和一个IDE来进行开发&#xff0c…...

【redis-05】redis保证和mysql数据一致性

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756【三】redis缓存穿透、缓存击穿、缓存雪崩htt…...

写一个登录判断机制py

创建一个简单的登录机制涉及到用户输入的验证和与数据库中存储的凭证的比较。以下是一个使用Python语言和SQLite数据库的示例。这个例子仅用于教学目的&#xff0c;实际应用中应该使用更安全的方法来存储和验证密码&#xff0c;比如使用密码哈希。 首先&#xff0c;你需要安装…...

特征点检测与匹配是计算机视觉中的基础任务之一,广泛应用于图像配准、物体识别、运动估计、三维重建等领域。

特征点检测与匹配是计算机视觉中的基础任务之一&#xff0c;广泛应用于图像配准、物体识别、运动估计、三维重建等领域。下面是一些关键的知识点&#xff1a; 1. 特征点检测 特征点检测的目的是从图像中找到独特的、稳定的点&#xff0c;这些点在图像变化&#xff08;如旋转、…...

python——Echarts现交互式动态可视化

数据展示 20192018201720162015201420132012北京5817.15785.91765430.78755081.264723.864027.16093661.10973314.934天津2410.252106.23972310.35522723.52667.112390.35182079.07161760.0201河北3742.673513.86433233.83322849.872649.182446.61662295.62032084.2825山西234…...

【含开题报告+文档+PPT+源码】基于SSM框架的民宿酒店预定系统的设计与实现

开题报告 随着人们旅游需求的增加&#xff0c;民宿行业呈现出快速发展的趋势。传统的住宿方式逐渐无法满足人们对个性化、舒适、便捷的需求&#xff0c;而民宿作为一种新型的住宿选择&#xff0c;逐渐受到人们的青睐。民宿的特点是具有独特的风格、便捷的地理位置、相对亲近的…...

正确理解协程

import asyncio# 定义一个异步函数&#xff08;协程&#xff09; async def say_after(delay, what):# 等待指定的时间await asyncio.sleep(delay)# 打印消息print(what)# 定义另一个异步函数 async def main():# 同时启动两个协程&#xff0c;并等待这2个协程结束await say_af…...

蒙特卡罗方法 - 采样和蒙特卡罗方法篇

序言 蒙特卡罗&#xff08; Monte Carlo \text{Monte Carlo} Monte Carlo&#xff09;方法&#xff0c;也被称为计算机随机模拟方法&#xff0c;是一种基于“随机数”的计算方法。这一方法源于美国在第二次世界大战期间研制原子弹的“曼哈顿计划”。其核心思想是使用随机数&am…...

论文阅读:InternVL v1.5| How Far Are We to GPT-4V? 通过开源模型缩小与商业多模式模型的差距

论文地址&#xff1a;https://arxiv.org/abs/2404.16821 Demo&#xff1a; https://internvl.opengvlab.com Model&#xff1a;https://huggingface.co/OpenGVLab/InternVL-Chat-V1-5 公开时间&#xff1a;2024年4月29日 InternVL1.5&#xff0c;是一个开源的多模态大型语言模…...

什么是电能表PTB认证

电能表PTB认证是指电能表产品经过德国国家计量研究所&#xff08;Physikalisch-Technische Bundesanstalt&#xff0c;简称PTB&#xff09;的认证和审核过程。PTB是德国联邦政府在计量、物理、材料和测试领域的技术专家和合作伙伴&#xff0c;拥有世界领先的技术水平和专业知识…...

C# 单例模式继承

简介&#xff1a;单例模式是软件工程中最著名的模式之一。从本质上讲&#xff0c;singleton 是一个只允许创建自身的单个实例的类&#xff0c;并且通常提供对该实例的简单访问。最常见的是&#xff0c;单例不允许在创建实例时指定任何参数 - 否则&#xff0c;对实例进行第二次请…...

ESP8266模块(WIFI STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 3.ESP8266基础AT指令介绍 4.ESP8266基础工作模式 三、程序设计 main.c文件 esp8266.h文件 esp8266.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 ESP8266是一款嵌入式系统级芯片&#xff0c;它集成了Wi…...

微信小程序学习实录9:掌握wx.chooseMedia实现多图片文件上传功能(选择图片、预览图片、上传图片)

要实现多图片上传到服务器&#xff0c;需要在小程序前端和PHP后端分别进行相应的设置。 基本流程 微信小程序提供了丰富的API来支持多图片上传功能。在微信小程序中实现多图片的选择、预览以及上传到服务器的功能&#xff1a; 1. 选择图片 使用 wx.chooseImage API 可以让用…...

助动词的分类及其缩略形式

助动词的分类及其缩略形式 1. 助动词 (auxiliary verb)2. 基本助动词 (primary auxiliary)2.1. 基本助动词 be、do 和 have2.2. 实义动词 be、do 和 have 3. 情态助动词 (modal auxiliary)3.1. 情态助动词取代情态动词 4. 半助动词 (semi-auxiliary)4.1. 不能与 it ... that-cl…...

Redis——分布式锁

在一个分布式系统中&#xff0c;只要涉及到多个节点访问同一个公共资源的时候&#xff0c;就需要加锁来实现互斥&#xff0c;从而达到线程安全的问题。 但是呢&#xff0c;分布式系统不同一些&#xff0c;因为分布式系统部署在不同的服务器上&#xff0c;很可能大量的请求打到…...

C++面试速通宝典——13

208. class里面定义int a&#xff0c;如果不实现构造函数&#xff0c;实例化这个类&#xff0c;a的值是&#xff1f; ‌‌‌‌  答&#xff1a;a的值是未定义的&#xff08;在C标准中成为“未初始化”&#xff09;。 解释&#xff1a; ‌‌‌‌  在C中&#xff0c;如果一…...

数据结构(二叉树)

1. 树相关术语 父结点/双亲结点&#xff1a;如果一个结点有子结点那么它就是父结点或者双亲结点&#xff1b;例如A是BCDEFG的父结点&#xff0c;J是PQ的父结点等等&#xff1b;子结点&#xff1a;一个结点含有的子树的根节点称为该结点的子结点&#xff1b;如上图的H是D的子结点…...

Windows 通过 Docker 安装 GitLab

1. 安装 Docker Desktop 下载网站&#xff1a;Windows | Docker Docs 2. 拉取 GitLab Docker 镜像 打开 PowerShell 或 命令提示符&#xff0c;拉取 GitLab 镜像&#xff1a; docker pull gitlab/gitlab-ee:latest或则使用社区版&#xff1a; docker pull gitlab/gitlab-ce…...

SQL专项练习第六天

Hive 在处理不同数据需求时的灵活性和强大功能&#xff0c;包括间隔连续问题的处理、行列转换、交易数据查询、用户登录统计以及专利数据分析等方面。本文将介绍五个 Hive 数据处理问题的解决方案&#xff0c;并通过实际案例进行演示。 先在home文件夹下建一个hivedata文件夹&a…...

CSS——属性值计算

CSS——属性值计算 今天来详细讲解一下 CSS的属性值计算过程&#xff0c;这是 CSS 的核心之一&#xff08;另一个是视觉可视化模型&#xff0c;个人理解&#xff0c;这个相对复杂&#xff0c;以后再讲&#xff09;。 基本概念 层叠样式表&#xff1a;Cascade Style Sheet&am…...