C语言——分支结构程序设计

news2024/9/22 4:19:26

分支结构程序设计(选择结构)

定义:根据条件是否成立,选择相应的操作

条件判断:根据某个条件成立与否,决定是否执行指定的任务。

选择结构中的常见形式:

if(关系表达式)

 {       语句1;

else

        语句2;

}

关系表达式:

含有关系运算符的表达式(>,<,>=,<=,!=,==)

                                          优先级  优先级

注:算数运算符优先级高于关系运算符

逻辑表达式:

含有逻辑运算符的表达式(&&,||,!),往往是用来构建复杂的复合条件。

逻辑运算符是构成复杂的复合条件的运算符。

eg:if(year % 100 == 0 && year % 4 !=0)

// 这种既含有关系表达式,又含有逻辑表达式的条件叫做复合条件

逻辑型常量只有两种:值非0表示“真”,值为0表示“假”。

注意:

逻辑表达式中各种运算符的优先级顺序如下:

   !(逻辑非) → 算术运算符→ 关系运算符→ && 与 || → 赋值运算符(=)

选择结构的形式

单分支

语法

if(关系表达式)

{        语句1;

}

说明

条件表达式成立,执行语句1,否则跳过该分支结果

双分支

语法:

if(关系表达式)

{        语句1;

else

        语句2;

}

说明:

条件表达式成立,执行语句1,否则执行语句2,双分支不管条件是否成立都会执行

三目运算符

语法:表达式1 ? 表达式2 : 表达式3;

说明:?:条件运算符,主要可以简化双分支为同一变量赋值的操作。

求值过程:

先计算表达式1的值,非0,则将表达式2的结果作为条件运算符的最终结果;否则将表达式3的结果作为条件运算符的最终结果。

条件表达式(三目运算符)中的运算符优先级

逻辑非(!) > 算数运算符 ( +-*/% ) > 关系运算符 (> < >= <= != ==) > 逻辑运算符 (&& ||)> 赋值运算符(= +=)

if语句

if语句的3种形式

1.if  (表达式)  语句

流程图:

2.if  (表达式)  语句1 else 语句2

流程图:

3.多分支

语法:

if  (表达式1)  语句1

else if  (表达式2)  语句2

          ……

else  if  (表达式n)  语句n

else  语句n+1

这种结构又称为if…else if结构

流程图:

举例:

#include
int main()
{
// 需求:编一程序,要求输入一个x值,输出y值6
// 方式1:嵌套的if..
int x,y;
printf("请输入一个整数:\n");
scanf("%d",&x);
// 条件判断
if(x 0)
{
y = -1;
}
else
{
// x >= 0
if(x == 0)
{
y = 0;
}
else
{
y = 1;
}
}
printf("方式1:x=%d,y=%d\n",x,y);
// 方式2:多分支if..else if....else..35
 // 条件判断
if(x 0)
{
y = -1;
}
else if(x == 0)
{
y = 0;
}
else
{
y = 1;
}
printf("方式2:x=%d,y=%d\n",x,y);
}

总结:

如果只需要一个判断结果,使用单分支

如果需要两个判断结果,且只能有两个判断结果,使用双分支

如果需要判断N个结果中的某几个,或者所有,使用多分支

if语句的嵌套

定义:

一个if语句中又包含着另一个或多个if语句,称为if语句的嵌套。

流程图

语法:

if ()

        if ()语句1

        else    语句2

else

        if ()语句3

        else    语句4

注意:

else总是与它前面最近的未配对的if 配对使用。

可通过增加花括号{}来确定配对关系。                

switch语句

语法:

switch (表达式)

    {  

        case  常量表达式1:  

                语句1;

                break;

        case  常量表达式2:  

                语句2;

                break;

         …     ...

        case  常量表达式n:  

                语句n;

                break;

         default:  

                语句n+1;

                (break;)

      }

流程图:

说明:

switch后括号内的表达式可是任何类型的表达式;

若表达式的值与某个常量表达式的值相等时,执行此case后面的语句;

若没有相等的值时,执行default后面的语句;

每个case后面的常量表达式的值都必须不相同,否则出现矛盾;

各个case 和default出现的次序不影响执行结果;

case后面的语句中如果没有break语句,则执行完本case后的语句会接着执行下面的case ;

多个case可共用一组语句。

注意:

1.表达式一般写一个变量,变量的值是一个确定的常量。

2.当遇到break或者switch语句的右大括号时,switch语句结束。

3.表达式中的数据类型:charshortint,long,longlong,不能是浮点型。

   表达式和常量的数据类型要一致(支持隐式转换),比较是否相同。

switch语句的case穿透:

1. case穿透:当case后的break被省略;就会直接执行它后面紧跟的case中的语句(不会判断表达式是否和它后面的case常量是否相同),这样的现象称之为case穿透。

2. default语句一般放在所有case之后,表明所有的case都不成立时,执行default中的语句;default语句可以放在switch语句{}内的任意位置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

含锡废水处理的主体处理

含锡废水处理是一个综合性的环保过程&#xff0c;旨在去除废水中的锡离子和其他有害物质&#xff0c;确保废水达到国家排放标准。以下是对含锡废水处理技术的详细阐述&#xff1a; 一、处理技术概述 含锡废水处理技术主要包括化学法、生物法和物理法三大类。每种方法都有其独特…

论文阅读:HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face https://proceedings.neurips.cc/paper_files/paper/2023/file/77c33e6a367922d003ff102ffb92b658-Paper-Conference.pdf HuggingGPT: 解决与ChatGPT及其在Hugging Face的朋友们相关的AI任务 Yon…

乐尚代驾十订单支付

账单信息 司机结束代驾之后&#xff0c;生成账单&#xff08;包含账单信息和分账信息&#xff09;司机发送账单给乘客乘客获取账单之后&#xff0c;进行支付 获取账单信息 order_bill表记录的账单信息&#xff0c;我们直接获取即可 Operation(summary "根据订单id获…

递归~~~

一.定义 计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集。 比如单链表递归遍历的例子&#xff1a; void f(Node node){if (node null){return;}f(node.next);} 说明&#xff1a; 1.自己调用自己&#xff0c;如…

基于SpringBoot+Vue的汽车服务管理系统(带1w+文档)

基于SpringBootVue的汽车服务管理系统(带1w文档) 基于SpringBootVue的汽车服务管理系统(带1w文档) 在开发系统过程中采用Java语言、MySQL数据库存储数据。系统以B/S为基础&#xff0c;实现管理一体化、规范化&#xff0c;为用户提供一个高效快捷的交流系统[5]。利用springboot架…

LearnOpenGL之3D显示

前序 AndroidLearnOpenGL是本博主自己实现的LearnOpenGL练习集合&#xff1a; Github地址&#xff1a;https://github.com/wangyongyao1989/AndroidLearnOpenGL 系列文章&#xff1a; 1、LearnOpenGL之入门基础 2、LearnOpenGL之3D显示 显示效果 根据上一篇文章的LearnO…

结构型设计模式:桥接/组合/装饰/外观/享元

结构型设计模式&#xff1a;适配器/代理 (qq.com)

浮动IP(Floating IP)计费;OpenStack算力共享;OpenStack实现资源虚拟化;算力调度策略

目录 浮动IP(Floating IP)计费 浮动IP的定义与作用 计费中的浮动IP数据 浮动IP在计费中的作用 OpenStack算力共享 一、OpenStack在算力共享中的角色 二、OpenStack与算力共享的结合方式 三、实际应用案例 算力调度策略 算力计费策略 OpenStack实现资源虚拟化 1.虚…

用于仅摄像头闭环驾驶的视觉语言模型

CarLLaVA: Vision language models for camera-only closed-loop driving 用于仅摄像头闭环驾驶的视觉语言模型 Abstract In this technical report, we present CarLLaVA, a Vision Language Model (VLM) for autonomous driving, developed for the CARLA Autonomous Driv…

【云原生】kubernetes最新版本1.30.2,集群搭建部署全方位攻略

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

SimGCL graph contrastive learning by finding homophily in heterophily

发表于: Knowledge and Information Systems, ccfb 推荐指数: #paper/ ⭐ 总结: 重新定义了相似度矩阵, 重新定义了特征, 重新设计了节点删除概率等, 但是, 换汤不换药, 引入了大量的超参 (快 10 个了吧). 创新点不够, 所以 ccf B 期刊理所应该. (甚至我觉得更低) 相关知识: 本…

详细教程 MySQL 数据库 下载 安装 连接 环境配置 全面

数据库就是储存和管理数据的仓库&#xff0c;对数据进行增删改查操作&#xff0c;其本质是一个软件。 首先数据有两种&#xff0c;一种是关系型数据库&#xff0c;另一种是非关系型数据库。 关系型数据库是以表的形式来存储数据&#xff0c;表和表之间可以有很多复杂的关系&a…

通俗易懂玩Qt:时间滑动选择器实现(内附主要源码)

时间滑动选择器实现 组件说明&#xff1a; 本组件命名为时间滑动选择器&#xff0c;主要运用于 arm 平台下的触摸屏上&#xff0c;虽然 QT 自带有时间选择组件&#xff0c;但是对触摸屏的使用并不友好&#xff0c;为了提升项目界面的交互性&#xff0c;于是就有了时间滑动选择器…

【深海王国】初中生也能画的电路板?番外1:Arduino其他家族成员的拓展板开发(1)

Hi~ (o^^o)♪, 各位深海王国的同志们&#xff0c;早上下午晚上凌晨好呀~ 辛苦工作的你今天也辛苦啦(/≧ω) 今天大都督为大家带来电路板的番外系列——初中生也能画的电路板&#xff1f;番外1&#xff1a;Arduino其他家族成员的拓展板开发&#xff0c;带你给其他Arduino家族成…

数据库漫游记:表、视图、函数、存储过程及触发器之跨平台兼容性分析(上)

先言之 &#x1f31f;余撰此文&#xff0c;乃为导引初窥数据库之学人&#xff0c;俾其明了表、视图、函数、存储过程及触发器之义理&#xff0c;及其于诸般平台之上创建、修改与废弃之法式。盖初学之人&#xff0c;常陷于迷雾之中&#xff0c;难辨东西&#xff0c;故须详述而明…

lombok使用@slf4j 运行时提示找不到符号log(Missing POM for org.projectors:lombok:jar)

1.问题表现 原本是之前搭建好的工程&#xff0c;只是换了个开发环境重新启动就不行了。一直编译不通过&#xff01; 可以看到IDEA其实是引入了依赖的 都没有出现红色波浪线 <mapstruct.version>1.5.5.Final</mapstruct.version> <lombok.version>1.18.30<…

鸿蒙(API 12 Beta2版)NDK开发【JSVM-API使用规范】

JSVM-API使用规范 生命周期管理 【规则】 合理使用OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope管理JSVM_Value的生命周期&#xff0c;做到生命周期最小化&#xff0c;避免发生内存泄漏问题。 每个JSVM_Value属于特定的HandleScope&#xff0c;HandleScope通过OH_JSV…

【Python实战因果推断】71_图因果模型6

目录 Positivity Assumption An Identification Example with Data Confounding Bias Positivity Assumption 调整公式同样强调了正则性&#xff08;positivity&#xff09;的重要性。因为你正在对治疗和结果之间的差异在X的条件下求平均&#xff0c;你必须确保对于所有X的…

【32单片机篇】项目:WIFI天气预报

一、项目需求 使用 ESP8266 通过 HTTP 获取天气数据&#xff08;心知天气&#xff09;&#xff0c;并显示在 OLED 屏幕上。 按键 1 &#xff1a;循环切换今天/明天/后天天气数据&#xff1b; 按键 2 &#xff1a;更新天气 二、项目框图 三、硬件部分 四、项目源码及实现 1.项…

MySQL是怎样运行的——第1章 初识MySQL

文章目录 1. 1 MySQL的客户端/服务器架构1.2 安装MySQL&#xff08;略&#xff09;1.3 启动MySQL服务器程序1.4 启动MySQL客户端程序1.5 客户端与服务器连接的过程1.6 服务器处理客户端请求 1. 1 MySQL的客户端/服务器架构 MySQL的运行过程就是C/S架构。多个客户端程序连接到服…