欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

C语言初阶 一文详解分支语句 if,c语言if多分支语句

终极管理员 知识笔记 79阅读


鸽芷咕个人主页
  个人专栏:《速学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);elseprintf(成年\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);elseprintf(老寿星\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< age和age <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相匹配的所以当我们a0时就不会进入里面的if语句进行判断所以就什么都没打印啦。 总结

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

标签:
声明:无特别说明,转载请标明本文来源!