教你快速精通循环和分支语句,确定不进来?(和bug 郭一起学C系列2)(1)

简介: 教你快速精通循环和分支语句,确定不进来?(和bug 郭一起学C系列2)(1)

语句

什么是语句?


printf("hehe");
    sum=a+b;   
    1+2;
    a++;
    ;    //空语句

上面所列举的都是语句,相信聪明的你已经发现规律了,只有带有;的都是语句;

;这便是语句的标准,甚至一个;也是一条语句,我们通常称为空语句!


C语言中由一个分号;隔开的就是一条语句。


C语言有三种语句结构


顺序结构

循环结构

分支(选择)结构

对应了我们生活中的三类事情


顺序结构:一我们按照顺序完成下去的事情,从出生开始到死去,我们对应着不同的年纪要做不同的事。

循环结构:我们每天都要重复进行的事情,比如吃饭睡觉。

分支(选择)结构:就是我们可以中断某一件事情,去做另一件事情。比如,你认真工作,然后买了张彩票就可以不工作了。


分支语句

分支语句是一种选择结构,也叫做选择语句

考上高中后有两种选择好好学习,考上大学;不好好学习,回家种地。

image.png


这便是一种选择结构,我们生活中很多事情都是选择结构!


if语句

啥是if语句呢

if语句就是一种分支结构;


语法结构

//单if
 if(表达式)
     语句;
//if    else     语句
   if(表达式)
   语句1;
   else
   语句2;
//if    else if   ...   else    多分支(多选择)
  if(表达式1)
         语句1;
   else if(表达式2)
         语句2;
           else if(表达式3)
              语句3;
                  ...
                   else
                   语句n;

我们下面用这3种结构实现上面的代码


单if 语句

int main()
{
    printf("请做出你的选择(1/0)>");
    scanf("%d",&x);
   if(x==1)
   printf("上大学!");
 }

if else 语句

int main()
{
    printf("请做出你的选择(1/0)>");
    scanf("%d",&x);
   if(x==1)
   printf("上大学!");
   else
   printf("回家种地!");
   return 0;
 }

多分支if else if else 语句


相信有很多人,上高中后不止这两种选择,富二代可以回家继承,也可以出国留学家业…生活中有很多都属于多分支结构。


int main()
{
       printf("请做出你的选择(1/2/3/4)>");
   scanf("%d",&x);
  if(x==1)
  printf("上大学!");
  else  if(x==2)
  printf("回家种地!");
  else if(x==3)
 printf("继承家业!");
 else  if(x==4)
 printf("出国留学!");
  else
 printf("其他!");
  return 0;
}

解释一下:如果表达式的结果为真,则语句执行。在C语言中如何表示真假?


0表示假,非0表示真。


那如果if里面有多条语句呢?

eg

image.png

可以看到报错了,难道只能一条语句?

image.png

只要我们在多条语句加上{ }就可以执行了。

注:当我们只有一条语句时,我们可以省略{ }当if要控制多条语句时,我们应该加上{ },当一条语句时,加上{ },可以增强代码的可读性,养成编程的好习惯!

我们来看看{ }是如何增强代码的可读性的!

int max1(int x, int y)
{
  if (x > y){
  return x;
  }
  return y;
 }
int max2(int x, int y)
{
  if (x > y)
  {
  return x;
  }
  else
  {
     return y;
  }
}

max1和max2其实是一样的!

显然max2的逻辑更加清晰,不容易出错,可读性高一些!

所以为何不加上那大括号呢?


switch语句

当有很多种选择的时候,if 语句读起来就显得吃力了,哪还有其他逻辑更加清晰语句吗?

当然有了,那就是switch语句

我们先来认识一下switch语句的语法结构


switch(整形表达式)
   {
     语句项; 
   }

啥是语句项呢?

case 整型常量表达式:  语句;

往往switch语句有多条语句项构成,一条语句项便是一个分支(一种选择);

说了这么多估计也听累了,我们来上个代码!

image.png

为啥和我们预料的不一样?

我们只想打印星期三但是把后面的都打印了。

难道是day只能选择入口,然后出去只能从最后出去?确实如此!

我们之前不是介绍过一个关键字break现在就派上用场了。

在switch语句中,无法实现多分支,只有搭配break才能实现多分支结构!

image.png

这就实现了多分支结构

break决定了程序的出口

那我们不输入1~7输入了其他数字呢?

image.png

显然这不是特别方便用户,如果没有提示输入1~7,那用户不是不知道那错了,这时,我们引入一个default关键字。即可代表其他选项!

image.png

是不是很完美了。


我们来总结一下switch的 注意事项


switch(表达式)必须是整型表达式,即不能判断浮点型数据。

case 只是决定入口,只有搭配default才能实现多分支结构

case后的常量表达式,要各不相同,不能重复了。

default 语句项位置任意,但是只能有一个,不一定要放在最后面

测试一下看看你学会了switch语句了没有

switch还能嵌套使用!

image.png

看看对了没!

image.png

目录
相关文章
|
存储 缓存 容灾
HBase可用性分析与高可用实践
HBase可用性分析与高可用实践
467 0
HBase可用性分析与高可用实践
☆打卡算法☆LeetCode 89、格雷编码 算法解析
“给定一个整数,返回任一有效的n位格雷码序列。”
|
JavaScript Linux 索引
Flash 与 Silverlight 终极大比拼
自 Silverlight 1.0 发布以来,Web 开发与设计者们关于该选择 Flash 和 Silverlight 的争论便开始了,在成熟的 Flash 面前,Silverlight 面临着如何赢得市场的难题。
1567 0
|
2天前
|
存储 JavaScript 前端开发
JavaScript基础
本节讲解JavaScript基础核心知识:涵盖值类型与引用类型区别、typeof检测类型及局限性、===与==差异及应用场景、内置函数与对象、原型链五规则、属性查找机制、instanceof原理,以及this指向和箭头函数中this的绑定时机。重点突出类型判断、原型继承与this机制,助力深入理解JS面向对象机制。(238字)
|
3天前
|
安全 数据可视化 网络安全
安全无小事|阿里云先知众测,为企业筑牢防线
专为企业打造的漏洞信息收集平台
1303 2
|
4天前
|
云安全 人工智能
2025,阿里云安全的“年度报告”
拥抱AI时代,阿里云安全为你护航~
1453 2
|
2天前
|
人工智能 自然语言处理 API
n8n:流程自动化、智能化利器
流程自动化助你在重复的业务流程中节省时间,可通过自然语言直接创建工作流啦。
360 4
n8n:流程自动化、智能化利器
|
11天前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
1467 7
|
1天前
|
Linux 数据库
Linux 环境 Polardb-X 数据库 单机版 rpm 包 安装教程
本文介绍在CentOS 7.9环境下安装PolarDB-X单机版数据库的完整流程,涵盖系统环境准备、本地Yum源配置、RPM包安装、用户与目录初始化、依赖库解决、数据库启动及客户端连接等步骤,助您快速部署运行PolarDB-X。
226 1
Linux 环境 Polardb-X 数据库 单机版 rpm 包 安装教程
|
4天前
|
人工智能 API 开发工具
Skills比MCP更重要?更省钱的多!Python大佬这观点老金测了一周终于懂了
加我进AI学习群,公众号右下角“联系方式”。文末有老金开源知识库·全免费。本文详解Claude Skills为何比MCP更轻量高效:极简配置、按需加载、省90% token,适合多数场景。MCP仍适用于复杂集成,但日常任务首选Skills。推荐先用SKILL.md解决,再考虑协议。附实测对比与配置建议,助你提升效率,节省精力。关注老金,一起玩转AI工具。

热门文章

最新文章