C语言基础学习笔记——分支语句(if/if else/else if/switch)_c语言条件分支语句if else语法规则-程序员宅基地

技术标签: 分支语句  学习笔记  C学习笔记  if / if else / switch  C语言基础  

语句:一条完整的计算机指令。
语句与表达式的区别:语句在结束处有分号。(如:a = 1 + 2是表达式。a = 1+ 2;是表达式语句)

语句的分类
  ①表达式语句:在表达式后面加分号。
  
  ②函数调用语句:函数名(实际参数列表);(如scanf( ); printf( ))
  
  ③空语句:只有一个分号,在程序中尽量避免使用。
  
  ④复合语句:花括号中的一条或多条语句。如
  {
  int a = 3;
  float b = 4.1;
  }在这里,两个表达式语句用花括号变成了一个复合语句。
  
  ⑤控制语句:包括分支语句、循环语句和辅助控制语句等。
在程序执行语句的时候,是按顺序执行的。

if 语句:提供一个分支,一个if语句是一条完整的语句,表示判断。
一般形式:

if(表达式)
{
    
	语句块
}
后续语句;

如果表达式的值为真,就执行花括号中的语句块,否则就跳过该语句,直接执行后续语句。if 一般在满足某个条件时,需要做相应的操作,多个if语句可以并列出现。

if else 语句:一般用在两者选其一时。一般形式

if (表达式)
{
    
	语句块1;
}
else
{
    
	语句块2;
}

如果表达式为真,则执行语句块1,否则执行语句块2.可以用一个if else语句在两个动作之间进行选择。

else if 语句:一般用在多选一。一般形式为:

if(条件表达式1)
{
    
	语句块1;
}
else if(条件表达式2)
{
    
	语句块2;
}
else if(条件表达式3)
{
    
	语句块3;
}
//中间还可以写很多
else
{
    
	语句块n;
}

如果表达式1成立,执行语句块1,并跳出整个语句,否则如果表达式2成立,则执行语句块2,并跳出整个语句,否则如果表达式3成立,则执行语句块3,并跳出语句。如果表达式都不成立,则执行最后的else语句。

switch 语句:在有多种选择时,可以使用if else 、else if实现,但是使用switch语句会更方便。一般形式为:

switch(表达式)   //表达式的值必须是可变的变量,可以是整型、字符型、枚举型
{
    
	case 常量表达式1:    //必须是常量(switch后变量可得到的值之一)
		语句块1;
		break;
	case 常量表达式2:
		语句块2;
		break;
	//中间可以写很多
	case 常量表达式n-1:
		语句块n-1;
		break;
	default:
		语句块n;
		break;
}

每个case后面都要加break,否则后面每个case都会执行;default语句可以不出现,不出现时如果没有匹配的case语句,则会直接跳出switch语句;可以多个case共用一条执行语句,每个case后面的值必须不同;case的顺序可以不同,随意安排,次序不影响执行结果。

if else语句和switch语句的区别选择
1.需要从多个选项中选择一个,switch语句更简洁方便,代码运行效率更高。
2.如果选择是基于浮点型变量或浮点型表达式的值,就不能用switch,因为浮点型的值不能作简单的比较。
3.如果变量必须落入某个范围内,也不能很方便的使用switch。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40754866/article/details/103442597

智能推荐

JS笔记 位运算符之左移、右移(有符号、无符号)_js 左移运算符-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏10次。1、左移(<<)左移操作符用两个小于号(<<)表示,会按照指定的位数将数值的所有位向左移动。比如,如果数 值 2(二进制 10)向左移 5 位,就会得到 64(二进制 1000000),如下所示:let oldValue = 2; // 等于二进制 10 let newValue = oldValue << 5; // 等于二进制 1000000,即十进制 64注意在移位后,数值右端会空出 5 位。左移会以 0 填充这些空位,让结果是完整的_js 左移运算符

虚幻4学习日记2 物体碰撞设置和模拟物理重力的关系_unreal 如何开启物理掉落-程序员宅基地

文章浏览阅读503次。今天尝试做一个小物件模型放在场景内。做完之后测试发现进入游戏该物件会悬浮,不受重力影响。而且退出测试的时候还会报出如下错误: 检查发现原来是碰撞复杂度设置成如下图导致的。 于是我把碰撞修改为盒体简化碰撞: 之后再测试,进入游戏发现物体可以受重力影响,会正常掉落到地面。..._unreal 如何开启物理掉落

数字语音--Matlab(转)_matlab如何把数字转换为语音-程序员宅基地

文章浏览阅读2.7k次。数字语音--Matlab(转)数字语音是信号的一种,我们处理数字语音信号,也就是对一种信号的处理,那信号是什么呢?信号是传递信息的函数。离散时间信号——序列——可以用图形来表示。按信号特点的不同,信号可表示成一个或几个独立变量的函数。例如,图像信号就是空间位置(二元变量)的亮度函数。一维变量可以是时间,也可以是其他参量,习惯上将其看成时间。信号有以下几种:(1)连续时间信号_matlab如何把数字转换为语音

华为平板matepad鸿蒙,华为平板 MatePad Pro 来了!首搭鸿蒙系统,与电脑“花样”协同…...-程序员宅基地

文章浏览阅读67次。平板电脑,或者说 " 好用的 " 平板电脑,在最近都被 iPad 所垄断,毕竟其他好用的平板实在是太少了……。今天终于有了一款能与 iPad 抗衡的产品。那就是全新推出的华为 MatePad Pro 系列。6 月 2 日,华为正式发布了这款新产品,与它同时发布的还有正式登场的鸿蒙操作系统。HarmonyOS 下的华为平板是一款怎样的产品呢?极果君这就带你了解一下。全新平板搭载 " 麒麟芯 ",性能...

accessToken refreshToken简单使用源码demo,双token刷新及有效时间设置_java 生成 access_token、refresh_token-程序员宅基地

文章浏览阅读1.8w次,点赞27次,收藏135次。最后会附上源码这篇介绍了一个项目中使用的双token登录认证刷新的demo,如需移植到生产项目中,需要根据实际情况做修改。有个地方需要注意: 我这里刷新产生新的refreshToken时 旧的refreshToken并没有失效,如果不是特别敏感这点的话可以不计较,若是在意的话,那需要自己处理:比如用缓存记录失效的token每次token认证判断是否是失效的token ,如果是的话就返回验证失败..._java 生成 access_token、refresh_token

支付宝小程序中点击图片进行放大查看切可以左右滑动_支付宝小程序 查看大图-程序员宅基地

文章浏览阅读1.6k次,点赞2次,收藏6次。在axml文件中写入代码&amp;lt;view class=&quot;campus-img&quot;&amp;gt; &amp;lt;block a:for=&quot;{{imgarr}}&quot;&amp;gt; &amp;lt;image src=&quot;{{item}}&quot; mode=&quot;scaleToFill&quot; onTap=&quot;img_支付宝小程序 查看大图

随便推点

为什么要前后端分离 有什么优缺点-程序员宅基地

文章浏览阅读392次。  一、前戏  前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。  核心思想是前端html页面通过ajax调用后端的res...

new/delete 详解_new delete-程序员宅基地

文章浏览阅读2.8w次,点赞33次,收藏150次。new 和 delete 是 C++ 用于管理 堆内存 的两个运算符,对应于C语言中的 malloc 和 free,但是malloc和free是函数,new 和 delete 是运算符。_new delete

超时超时超时超时超时-程序员宅基地

文章浏览阅读550次。超时超时超时超时超时超时超时超时超时超时超时超时超时超时超时超时

智慧工程新思想:PDCA循环助力项目管理_利用pdca循环进行工程项目进度管理-程序员宅基地

文章浏览阅读590次。在“互联网+”的时代潮流下,互联网渗透至各行各业,信息化、智能化充斥各个领域。与人们息息相关的工程行业,也成了互联网+的对象。于是,越来越多智慧工程、智慧工地出现。智慧工程出现的目的就是为了解决项目管理难的问题。它并不等同与智能工程,它也不是智能机器代替人员劳作的模式,而是一种崭新的工程全生命周期管理理念。它通过三维设计平台对工程进行精确设计和模拟,并将此数据在虚拟现实环境下与物联网采集到的工_利用pdca循环进行工程项目进度管理

slf4j、log4j日志级别与配置_slf4j log level-程序员宅基地

文章浏览阅读3.7k次,点赞2次,收藏6次。slf4j、log4j日志级别与配置日志共有8个级别(优先级从低到高,优先级越高表示过滤的log信息越多,显示的log信息越少)OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL_slf4j log level

app拍照添加水印 (uniapp)_uniapp照片水印-程序员宅基地

文章浏览阅读299次。注意这里的代码是拍照的,拍照uniapp返回的路径是 _doc/uniapp_temp_1678758693371/camera/1678758699703.jpg 这种格式的路径,无法直接使用 img 标签展示,但是如果不用img标签展示,使用image,生成出来的图片会非常的模糊,因为image他打包后是被当做 背景图片渲染的,而不是当做图片。html2canvas是无法直接在app中使用的,但是uniapp提供了renderjs,所以我们还是能在uniapp中使用html2canvas的。_uniapp照片水印