倾心创作,分支语句和循环语句(1)——分支语句—— if 和switch的用法详解

简介: 分支语句(条件判断语句、选择语句)(1)if语句a if() { …… }b if……else……c if……else if……else……d.悬空else(2)switch语句a.switch语句也是一种分支语句。常常用于多分支的情况。b.break在switch中的作用c.switch的使用
🌹作者:云小逸
📝个人主页: 云小扬的主页
📝码云: 云小扬 (YunXiaoYang003) - Gitee.com
🤟motto:要敢于一个人默默的面对自己, ==强大自己才是核心==。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!学会自己和解,与过去和解,努力爱自己。==希望春天来之前,我们一起面朝大海,春暖花开==!🤟
👏专栏:C语言初阶👏专栏:C语言进阶👏专栏:数据结构和算法👏
👏专栏:C++初阶---👏专栏:C++进阶--👏专栏:Linux学习👏

@TOC


前言

上一次我们说完了初识C语言的知识点,今天我们就开启第二章——==分支语句和循环语句==。那么就由云小逸带你了解认识学习==分支语句和循环语句(1)==。
——————————————————————————————
首先先写上几句话:献给坚持创作的我和点开这篇文章希望进步的你

  1. 生活总是这样,不能叫人处处都满意。但我们还要热情地活下去。==人活一生,值得爱的东西很多==,不要因为一个不满意,就灰心。
  2. 没有一个人的生活道路是笔直的、没有岔道的。有些岔道口,譬如政治上的岔道口,事业上的岔道口,个人生活上的岔道口,你走错一步,可以影响人生的一个时期,也可以影响一生。
  3. 人在年轻时,最头疼的一件事就是决定自己这一生要做什么。
  4. 人生太长,我们怕寂寞,人生太短,我们怕来不及。
  5. 光勤劳是不够的,蚂蚁也非常勤劳。你在勤劳些什么呢?有两种过错是基本的,其他一切过错都由此而生:==急躁和懒惰==。

1.C语言是==结构化==的程序设计语言

C语言是一门结构化的程序设计语句,可以将其分为三种:顺序语句、选择语句、循环语句。如图:
在这里插入图片描述

正如我们汉语中的语句可以分为疑问句,反问句,排比句一样,C语言也可以划分为一下五种:

  1. 表达式语句
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句

这几节我们先来谈一谈:控制语句。

其中C语言中的控制语句可以分为三大类:
1.==条件判断语句(分支语句)==:if , switch
2.循环执行语句:do……while , while ,for
3.转向语句:break语句,goto语句,return语句 ,continue语句

2.分支语句(条件判断语句、选择语句)

(1)if语句

如果你好好学习,校招时拿一个==好offer==,==走上人生巅峰==。
如果你不学习,毕业等于失业,回家卖红薯。 这就是选择!

a if() { …… }

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
    int a = 10;
    if (3 == a)
        printf("love!\n");
    return 0;
}

在这里插入图片描述
在这里插入图片描述

注意两者差异的原因:第一张是判断是否==a等于3==,第二张是==赋值了a=3==,a非零则为真
如果你想避免第二种错误,这里推荐把它写成3==a,这样写如果忘加了一个等号编译器会报错,怎么样是不是很实用(^_−)☆

b if……else……

#include<stdio.h>
int main(void)
{
    int age = 17;
    if (age < 18)
        printf("未成年!\n");
    else
        printf("成年了!\n");
    return 0;
}

在这里插入图片描述

c if……else if……else……

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
        int age = 17;
        scanf("%d", &age);
        if (age < 18)
            printf("青少年\n");
        else if (age >= 18 && age < 28)
            printf("青年\n");
        else if (age >= 28 && age < 40)
            printf("中年\n");
        else if (age >= 40 && age < 60)
            printf("壮年\n");
        else if (age >= 60 && age <= 100)
            printf("老年\n");
        else
            printf("老寿星\n");
    return 0;
}

在这里插入图片描述

d.悬空else

一道题帮助你理解悬空else:
在这里插入图片描述**动一动你漂亮(帅气)的脑袋想一想,结果是什么?
如果你不确定结果是吗?那就请看下面这张图:**
**
哈哈结果是不是一目了然:**
在这里插入图片描述
如果还没有明白,也没关系,看下面这张图:
在这里插入图片描述
相信聪明的你肯定明白了吧ヾ(=・ω・=)o

这个例子告诉了我们两件事:
1.else是与最近的if相匹配。
2.好的代码习惯有助于我们更好更快的理解代码,所以说养成一个优秀的代码习惯是多么重要。过几天我会单独写一个博客说一说:优秀的代码习惯有哪些?以帮助我们更好的学习和未来的就业!

**if语句我们大致讲完了,这里推荐大家去写==两道题==去巩固一下:
1.判断一个数是否为奇数
2.输出1至100之间的奇数**

(2)switch语句

a.switch语句也是一种分支语句。常常用于多分支的情况。

比如下面这个例子:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日

**如果用if将会有多麻烦,我们想想便头皮发麻,且写出来结果不易观察和分析。
而用switch是超级简单的:**

#include <stdio.h>
int main()
{
    int day = 0;
    switch(day)
   {
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;    
        case 4:
            printf("星期四\n");
            break;    
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期天\n");    
            break;
   }
    return 0;
}

注:switch(表达式A)中表达式必须是==整型常量==表达式,可以是字符,因为字符属于整形家族,按ASCII码存储,其本质上是整形。

b.break在switch中的作用

如果不加上每一个case后break上面的例子将会出现这样的结果:
在这里插入图片描述
所以总结:break在switch中的作用是:==跳出,永久终止==。

c.switch的使用

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
    int day = 3;
    scanf("%d", &day);
    switch (day)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        printf("weekday!\n");
        break;
    case 6:
    case 7:
        printf("weekend!\n");
        break;
    default:printf("error!\n"); break;
    }
        return 0;
}

在这里插入图片描述

default:printf("error!\n"); break;//这个的作用是如果输入大于7则报错!!!

举一个例子以便你的理解:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
    int n = 1, m = 2;
    switch (n)
    {
    case 1:n++;
    case 2:m++;
    case 3:
        switch (n)
        {
        case 1:n++;
        case 2:m++; n++; break;
        }
    case 4:m++; break;
    default:printf("error!\n"); break;
    }
    printf("%d %d", m, n);
        return 0;
}

结果给各位大佬附上结果:
在这里插入图片描述

最后

十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我:

  1. 没有人可以永远==无条件==的陪伴着你,要知道,下雨天的时候==连影子都会缺席==。
  2. 就是时光倒流,生命再一次重演,我选择的仍是这条同样的道路。
  3. 别为了那些不属于你的观众,去==演绎==不擅长的人生。
  4. 不如意事常八九,可与人言无二三。
  5. 我相信,那一切都是==种子==。只有经过埋葬,才有生机。

最后如果觉得我写的还不错,请不要忘记==点赞==✌,==收藏==✌,加==关注==✌哦(。・ω・。),所有代码均上传至云小逸的码云了,快去看看吧!

愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚==菜鸟==逐渐成为==大佬==。加油,为自己点赞!

目录
相关文章
|
缓存 前端开发 UED
前端常见的HTTP状态码
【4月更文挑战第6天】HTTP状态码是服务器对请求的响应状态,分为1xx(处理中)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)五大类。常见的如200(成功)、404(未找到)、500(服务器内部错误)。理解这些状态码有助于优化前端应用的请求处理和调试。
589 1
|
机器学习/深度学习 存储
卡方分箱、KS分箱、最优IV分箱、树结构分箱、自定义分箱
卡方分箱、KS分箱、最优IV分箱、树结构分箱、自定义分箱
3429 0
卡方分箱、KS分箱、最优IV分箱、树结构分箱、自定义分箱
|
Web App开发 搜索推荐 安全
免费、好用、强大的开源笔记软件综合评测
笔记产品那么多,为什么要使用开源笔记软件? 开源笔记软件的优点和缺 优点 • 免费使用; • 可扩展性强,满足用户的个性化需求; • 数据更加安全,不用担心开发者突然跑路; 缺点 • 用户最好具备一定的技术,有些功能的使用可能需要用户自 下面是一些比较著名的开源笔记软件。绝大多数开源软件都是针对某款知名笔记软件的替代品,比如印象笔记/EverNote、Roam Research、Notion 等笔记软件的替代品。 具体包括,Joplin、 Turtle、 Laverna、 Boostnote、 Anytype、 Focalboard、 TiddlyWiki 、 Athens、 Trilium.
2946 0
免费、好用、强大的开源笔记软件综合评测
|
12月前
|
存储 算法 关系型数据库
InnoDB与MyISAM实现索引方式的区别
InnoDB和MyISAM均采用B+树索引,但在实现上有所不同。InnoDB的主键索引在叶子节点存储完整数据记录,辅助索引则存储主键值;而MyISAM的主键索引与数据文件分离,仅存数据地址,且主辅索引无区别,支持非唯一主索引。
209 1
|
11月前
|
C语言 开发者
【C语言】数学函数详解
在C语言中,数学函数是由标准库 `math.h` 提供的。使用这些函数时,需要包含 `#include <math.h>` 头文件。以下是一些常用的数学函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
390 6
|
Java 应用服务中间件
面对海量网络请求,Tomcat线程池如何进行扩展?
【10月更文挑战第4天】本文详细探讨了Tomcat线程池相较于标准Java实用工具包(JUC)线程池的关键改进。首先,Tomcat线程池在启动时即预先创建全部核心线程,以应对启动初期的高并发请求。其次,通过重写阻塞队列的入队逻辑,Tomcat能够在任务数超过当前线程数但未达最大线程数时,及时创建非核心线程,而非等到队列满才行动。此外,Tomcat还引入了在拒绝策略触发后重新尝试入队的机制,以提高吞吐量。这些优化使得Tomcat线程池更适应IO密集型任务,有效提升了性能。
面对海量网络请求,Tomcat线程池如何进行扩展?
|
搜索推荐
LangChain-10 Agents langchainhub 共享的提示词Prompt
LangChain-10 Agents langchainhub 共享的提示词Prompt
179 3
|
存储 机器人 关系型数据库
如何使用 LangChain 和 PostgreSQL + Drizzle ORM 构建上下文聊天机器人
如何使用 LangChain 和 PostgreSQL + Drizzle ORM 构建上下文聊天机器人
731 1
如何使用 LangChain 和 PostgreSQL + Drizzle ORM 构建上下文聊天机器人
|
Linux 网络安全 数据库
openstack 部署单节点
在CentOS 7系统上,配置了一台拥有4核CPU、8GB内存和300GB磁盘的服务器,安装了OpenStack Trian版本。安装完成后,获取了OpenStack管理控制台的登录凭证(admin用户和密码),可访问IP地址192.168.200.249/dashboard进行登录。如果遇到问题,可能需要重新安装以确保纯净环境。
625 0