你真的学懂if语句了嘛,看完这篇文章你一定会让你有所收获,彻底玩转if语句!

news2025/2/22 3:43:06

📌(,・∀・)ノ゛hello ,欢迎来到鸽芷咕的个人频道。
📜 本博主是C/C++领域的新星作者,平时喜欢分享一些编程经验和学习中的遇到的难题,喜欢不要忘了关注咯!
在这里插入图片描述

✅ 鸽芷咕: 个人主页
 🔥 专栏: 《C语言初阶篇》

在这里插入图片描述

文章目录

  • 前言
      • 结构化程序设计的三种基本结构
      • 💬 分支语句 (选择结构)
      • 📑 if 语句
        • 💬 代码演示:`if`语句的单分支情况
        • 💬 代码演示:`if`语句的单双分支情况
        • 💬 代码演示:`if`语句的多分支情况
      • 💬 if语句中的嵌套
      • 💬 if语句中的注意事项
        • 📜 if 语句中的大括号
        • 📜 悬空else、else的匹配规则
      • 总结

前言

   🌈hello! 各位宝子们大家好啊,相信大家都多多少少了解过if语句吧,但是你真的有了解过,所有if语句的细节吗?学完这篇文章你将知道if语句的所有知识。

结构化程序设计的三种基本结构

📑大家都知道C语言开发出来是为了解决生活中的问题的,而生活中的问题可以大致分为:
📌 顺序结构:

  • 就是按照顺序一步一步往下走

📌选择结构:

  • 分支语句

    • ifswitch

📌循环结构:

  • 循环语句:

    • whliefordo while

本次主要给大家讲解选择结构中的分支语句:if语句、switch语句;

💬 分支语句 (选择结构)

📚那么什么是选择呢?
想我们生活中的,最平常的
今天选择吃吃蛋炒饭呢?
还是吃吃红烧牛肉面条?这个就是选择?
在这里插入图片描述

💡 当然我们生活种还有些人说,这些我都不想吃我就想吃大虾。

  • 这个在C语言中就是多分支语句。

在这里插入图片描述

💡 现在大家明白什么是选择结构了吧! 废话不多下面给大家讲讲讲在C语言中选择语句是怎么实现的。
C语言中选择结构为我们提供了俩个选择语句:
if 语句 switch语句

📑 if 语句

  • if由名知意:就是条件的意思嘛。

先来给大家讲讲if语句的语法是怎么样的?

💬 代码演示:if语句的单分支情况

✅ 语法结构:

if(表达式)
{
	语句;
}    

💭这边来解释一下但分支if语法结构意思:
📌if前面说了是条件所以我们if后面跟的表达式就是条件
📌而下面的括号代表满足这个条件就进入到这个括号里面开始执行括号里面的语句

  • 语法清楚了那么,实战开始
#include <stdio.h>
int main()
{
	int age = 0;
	//输入
	scanf("%d", &age);

	if (age < 18)
		printf("未成年\n");

	return 0;
}

📜说明:
这里的意识是输入一个年龄,我们进行判断,当小于18时我们就输出未成年。

  • 各位铁铁们是不是非常简单,这就是if语句的单分支情况。

💬 代码演示:if语句的单双分支情况

✅ 语法结构:

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

💭这边来解释一下但双分支if语法结构意思:
📌if的单分支我们前面讲了,其实 双分支 也非常简单。else 就是否则的意思。字面上理解就是多了一种情况。有了俩种选择,是吧就是如此的简单!
📌满足if语句后面的表达式条件,就进入if后面跟的 括号 里面 执行语句 ,否则就进入else后面的括号里面 执行语句

  • 语法清楚了那么,实战开始
#include <stdio.h>
int main()
{
	int age = 0;
	//输入
	scanf("%d", &age);

	if (age < 18)
		printf("未成年\n");
	else
		printf("成年\n");

	return 0;
}

ok各位铁汁们,这段代码大家看的懂嘛!
📜说明:
当我们输入的年龄大于18时就输出 成年
当我们输入的年龄小于18时就输出 未成年
这是不是可以选择的就是俩总情况了呢?这个就叫if语句的双分支。

📑那么有人就会问那博主,那我有更多的情况怎么表达呢?

📑这时就会用到if的多分支情况,下面我们来一起看看吧。

💬 代码演示:if语句的多分支情况

✅ 语法结构:

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

💭这边来解释一下但双多分支if语法结构意思:
📌if的单双分支我们前面讲了,多分支其实和双分支很像。多了一些条件嘛。条件那么在加上一个if然后在表达式里面写条件就好了。这是不是就好理解多了。
📌多几个条件我们就加几个else if就好了,满足else if后面的表达式条件就进入后面跟的括号里面的语句

  • 语法清楚了那么,实战开始
#include <stdio.h>
int main()
{
	int age = 0;
	//输入
	scanf("%d", &age);
	//<18 青少年
	//18~30 青年
	//31~50 中年
	//51~80 中老年
	//81~100 老年
	//101+ 老寿星
	if (age < 18)
		printf("青少年\n");
	else if (age >= 18 && age <= 30)
		printf("青年\n");
	else if (age >= 31 && age <= 50)
		printf("中年\n");
	else if (age >= 51 && age <= 80)
		printf("中老年\n");
	else if (age >= 81 && age <= 100)
		prnitf("老年\n");
	else
		printf("老寿星\n");
	return 0;
}
else if (age >= 18 && age <= 30)

这句话各位铁子们刚学可能看不懂,相信大家可能会问18~30数学里面直接写:
💭 说明:

  • 18<= age <=30 这个是数学里面的写法。
  • 而这样写C语言会当成什么呢?
  • C语言中会先执行18<=age这个条件,当我们输入15时。18<=15肯定是假的那么就是0。在C语言中假为0,真为1。
  • 18<= age <=30 就会变成0 <=30
  • 看下面这段代码,所以当我们输入15时也会输出青年
    在这里插入图片描述

📌 怎么解决呢?
在C语言中&&是逻辑与的意思就是并且
所以我们这样写18<= age <=30 就完美解决了这个问题。
同时满足18<= ageage <=30俩个条件。

ok各位铁汁们,这下这段代码大家看的懂了嘛!
📜说明:
这里我们就用了if多分支写了多个条件。
输入年龄大于18  输出   青少年
输入年龄18~30   输出   青年
输入年龄31~50   输出   中年
输入年龄51~80   输出   中老年
输入年龄81~100 输出   老年
输入年龄101+   输出  老寿星

💭各位铁子们,明白了嘛,是不是也不难

💬 if语句中的嵌套

📚 在if语句中是支持嵌套使用的大家看。

	if (age < 18)
    {
        printf("青少年\n");
    } 		
    else
    {
        if (age >= 18 && age <= 30)
            printf("青年\n");
        else if (age >= 31 && age <= 50)
            printf("中年\n");
        else if (age >= 51 && age <= 80)
            printf("中老年\n");
        else if (age >= 81 && age <= 100)
            printf("老年\n");
        else
            printf("老寿星\n");
    }
  • 这里我们就使用了 if 语句的嵌套,当输入的年龄大于18了,之后就进入else里面嵌套的if语句里面判断。

💬 if语句中的注意事项

📜 if 语句中的大括号

  • 前面我们的if语句都没有带大括号,大家看下这段代码
//代码一:									//代码二:
	if (18 <= age )							if (18 <= age )							
		printf("青年\n");					{
		printf("成年了\n");						printf("青年\n");	
												printf("成年了\n");
											}	

这俩个语句有什么区别? 运行看一下

在这里插入图片描述

  • 我们的本意是当输入年龄时18时才会输出后面俩条语句。
  • 结果我们输入15时,结果第二条打印语句也输出了。

而带了括号呢?

请添加图片描述
📌 这是为什么嘞!

📜 原因:

  • if语句中只默认跟一条语句,想跟多条语句的话,就要在if语句里面加上大括号然后再大括号里面写语句就可以执行多条了。
  • 所以我们好的习惯是,不管是一条语句还是多条语句都加大括号。
  • 这就是所谓的复合语句,有多条语句。

✅ 模板:

if (18 <= age )	
{
	printf("青年\n");					
	printf("成年了\n");	
}
else
{
	printf("哈哈\n");
}

📜 悬空else、else的匹配规则

大家看一下这段代码,的输出结果是什么。

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2)
            printf("hehe\n");
    else
            printf("haha\n");
    return 0;
}
  • 相信很多人都会说,这还不简单,当a不等于1是不就进入else里面打印haha嘛?
  • 真的是这样嘛?我们来看一下

在这里插入图片描述
大家看什么都没输出,啊为什么会是这样呢?

  • 这段代码我们重新手写一下
#include <stdio.h>
int main()
{
    int a = 0;
    int b = 2;
    if (a == 1)
        if (b == 2)
            printf("hehe\n");
   	    else
            printf("haha\n");
    return 0;
}

这样才是真正的书写方式,是不是直观很多呢?

  • 这时大家会发现,一个人的代码规范真的特别重要,行为不规范的代码特别容易造成误解!

✅ 模板:
然后我们来讲下为什么?

  • else 是和最近的 if相匹配的
  • 所以当我们a=0时就不会进入里面的if语句进行判断所以就什么都没打印啦。

总结

✅ 归纳:
好了以上就是if语句的全部内容了,关于
  if的语法
  if的大括号
  if的嵌套
  注意事项
  else的匹配规则
就是这些内容了,学会他们你就可以玩转if语句了。
给大家留下一个题目大家学完之后可以去练习练习,巩固一下自己今天学的知识。
判断一个数是否为奇数
看到这里了还不给博主扣个点赞收藏
💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖
拜托拜托这个真的很重要!
你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。
在这里插入图片描述

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

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

相关文章

Arrays类 (Java)

文章目录 1. 介绍2. 分析3. 方法3.1 toStriing()方法3.2 sort()方法 1. 介绍 A. 类介绍&#xff1a;  此类包含用来操作数组&#xff08;比如排序和搜索&#xff09;的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂. 2. 分析 A. 类包结构&#xff1a;java.uti…

linux-2.6.22.6内核nand flash框架分析

内核启动时会在串口打印nand flash的相关信息&#xff0c;通过该信息可定位到内核自带的nand flash相关驱动代码。 例如串口打印S3C24XX NAND Driver&#xff0c;搜索该字符串可找到/home/book/work/linux/linux-2.6.22.6/drivers/mtd/nand/s3c2410.c这个文件&#xff0c;这个…

The Company Requires Superficial StudyPHP 了解PHP ①

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; The Company Requires PHP MYSQL &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以…

webassembly性能优化

添加调试内容 性能查看 1.点击chrome的性能 2.点击录制按钮 3.开始启动性能分析之后&#xff0c;进行操作 4.操作完成后&#xff0c;点击停止。 5.ctrlf调出搜索&#xff0c;查看相关函数 6.从上到下查看具体耗时的操作。 其中上层包含下层时间。

购物车业务

一、分析购物车vo &#xff08;1&#xff09;添加成功页 public class CartItemVo implements Serializable {/*** 商品id*/private Long skuId;/*** 是否选中*/private Boolean check true;/*** 商品标题*/private String title;/*** 商品图片*/private String image;/***…

Redis6之哨兵模式

哨兵&#xff1a;是用于监控Redis集群中主节点状态的工具&#xff0c;是Redis高可用解决方案&#xff0c;哨兵可以监视一个或者多个redis 主节点&#xff0c;以及这些主节点的所有从节点。 某个主节点服务宕机后&#xff0c;会把这个主节点下的某个从节点升级为主节点来替代已宕…

软件测试技能,JMeter压力测试教程,监听器之灵活的文件写入(十六)

一、前言 JMeter使用Simple Data Writer插件具有非常简单的测试结果编写功能。文件格式仅限于XML和CSV&#xff0c;字段顺序已预定义。因此&#xff0c;你可能会发现Simple Data Writer不足以完成您的任务 Flexible File Writer插件允许以灵活的格式编写测试结果&#xff0c;…

HarmonyOS 4.0开发者Beta招募,快来报名尝鲜

作为一枚资深玩机党&#xff0c;相比同质化日趋严重的硬件配置&#xff0c;我对各大手机厂商的系统软件更感兴趣。把玩了几年iPhone、三星及国产安卓手机&#xff0c;沉浸体验了iOS、Android几番更新迭代&#xff0c;暮然回首——还是咱们“土生土长”的HarmonyOS更贴合我个人的…

如何使用Claude(超详细教程)

如何使用Claude(超详细教程) 1. 目前claude只支持在slack中使用 点击进入claude官网然后点击添加到Slack中 2. 跳转到Slack创建工作区 点击创建新的工作区&#xff08;以前使用过Slack可用以前的工作区&#xff09; 输入邮箱&#xff0c;建议谷歌邮箱登录&#xff08;其他邮…

ValSuite报告可以帮助改善您的验证过程的6种方式

热验证工艺是一项复杂而微妙的工作&#xff0c;但它是确保制药和生物技术产品的安全性和有效性的重要组成部分。同时&#xff0c;管理整个验证过程中产生的数据可能很费时&#xff0c;而且容易出错——这就是ValSuite的意义。 这款直观的验证软件简化了数据分析和报告&#xf…

Visual C++中*号位置和功能详细解说

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天来聊聊Visual C中*号的位置。 我知道在程序员队伍中有一群特别细心、谨慎的可爱的人&#xff0c;他们经常为一些在别人看来小的不能再小的问题所困惑。比如说&#xff0c;*号的位置&#xff0c;让很多人…

SpringBoot集成MinIO

简介 对象存储服务OSS&#xff08;Object Storage Service&#xff09;是一种海量、安全、低成本、高可靠的云存储服务&#xff0c;适合存放任意类型的文件。容量和处理能力弹性扩展&#xff0c;多种存储类型供选择&#xff0c;全面优化存储成本。今天我这里主要讲解SpringBoo…

工业物联网解决方案:水轮机PLC数据采集远程监控系统

水轮机是一种能将水的动能转化为旋转机械能的动力设备&#xff0c;是水电站的重要工业设备。随着工业自动化技术与PLC设备的推广应用&#xff0c;水轮机可以通过PLC实现自动化控制&#xff0c;进而通过搭建PLC数据采集远程监控系统&#xff0c;实现水轮机的实时在线监控&#x…

产品再次跳票 法拉第未来的融资价值却渐渐浮现?

从“生态化反”到“极智科技顶奢”&#xff0c;贾跃亭讲故事的出众能力&#xff0c;总是能为旗下企业和产品赚足市场眼球。 但仅有宏大的前景描绘&#xff0c;似乎难以触动理性的资本市场&#xff0c;其创立的新能源车企法拉第未来&#xff08;NASDAQ&#xff1a;FFIE&#xf…

在IDEA中将自定义的配置文件设置到SpringBoot工程中

可以帮助我们生成自定义配置的元数据信息&#xff0c;让配置文件和Java代码之间的对应参数可以自动定位&#xff0c;方便开发。 <!-- 生成自定义配置的元数据信息 --><dependency><groupId>org.springframework.boot</groupId><artifactId>sprin…

Hiera:一个没有Bells-and-Whistles的分层视觉转换器

文章目录 Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles摘要本文方法实验结果 Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles 摘要 现代层次视觉转换器在追求监督分类性能的过程中增加了一些特定于视觉的组件。虽然…

PS修改日期(简单两步)

PS修改日期&#xff08;简单两步&#xff09; Q&#xff1a;将图中的日期修改为6月10日 选择画笔工具&#xff0c;把要修改的日期涂抹掉 设置前景色&#xff0c;使用吸管吸附要涂抹的颜色&#xff0c;然后点击确定 使用设置好颜色的画笔&#xff0c;在要修改的日期上涂抹 …

接口自动化测试实操【设置断言思路】

1 断言设置思路 这里总结了我在项目中常用的5种断言方式&#xff0c;基本可能满足90%以上的断言场景&#xff0c;具体参见如下脑图&#xff1a; 在这里插入图片描述 下面分别解释一下图中的五种思路&#xff1a; 1&#xff09; 响应码 对于http类接口&#xff0c;有时开发人…

期末复习【计算机网络】

期末复习【计算机网络】 前言推荐期末复习如何快速阅读电子书重点第1章 概述1.6 计算机网络的性能1.6.2 计算机网络的性能指标√ 1.7 计算机网络体系结构1.7.3 具有五层协议的体系结构√ 第2章 物理层2.3 物理层下面的传输媒体 *2.4 信道复用技术2.4.1 频分复用、时分复用和统计…

天津大学天津市认知计算与应用重点实验室视听觉认知计算团队12篇论文被语音处理顶会Interspeech 2023接收

天津大学天津市认知计算与应用重点实验室视听觉认知计算团队12篇论文被语音技术顶会Interspeech 2023接收&#xff0c;涵盖意图识别、口语理解、声学特征、语音识别、语音分离、情感识别等研究方向&#xff0c;论文简介如下。 01. Rethinking the visual cues in audio-visual…