当前位置: 首页 > news >正文

C语言·分支和循环语句(超详细系列·全面总结)

前言:Hello大家好😘,我是心跳sy,为了更好地形成一个学习c语言的体系,最近将会更新关于c语言语法基础的知识,今天更新一下分支循环语句的知识点,我们一起来看看吧~

目录

一、什么是语句?💫

1、⭐️语句的定义⭐️

2、⭐️语句的分类⭐️

二、分支语句 💫

1、⭐️if 语句⭐️

2、⭐️switch 语句⭐️

三、循环语句 💫

1、⭐️while 循环⭐️

1.1、🌈while 循环中的 break 

1.2、🌈while 循环中的continue 

2、⭐️for 循环⭐️

2.1、🌈for 循环的变种

2.2、🌈for 循环与 while 循环

3、⭐️do...while() 循环⭐️


 

🌈心跳sy的C语言专栏  ⏪C语言知识点汇总到这了,有兴趣的友友可以订阅看看哟~

一、什么是语句?💫

1、⭐️语句的定义⭐️

在C语言中,语句是用于执行操作的代码单元。

语句总是以分号(;)结尾,这是C语言中语句的标志;语句可以简单,也可以复杂,它们可以执行各种操作,如计算、赋值、函数调用、条件执行、循环等。

2、⭐️语句的分类⭐️

👉C语句可分为以下五类:

🔶表达式语句

由表达式加上分号组成,例如:a+b=c;是一个赋值语句,用于将 b+c 的结果赋值给 a;

🔶函数调用语句

用于调用函数并执行它的代码,例如:printf("Hello,World!") 调用了标准库中的printf函数来输出文本到控制台;

🔶控制语句

用于控制程序的执行流程;包括条件语句(如 if 和 switch)和循环语句(如 for、while 和 do while)

🔶复合语句

由花括号 { } 包围的一个或多个语句的集合;

🔶空语句 

只有一个分号的语句,不执行任何操作,通常用于占位符或者满足语法要求;

👉本节主要介绍控制语句中的分支语句和循环语句~

二、分支语句 💫

👉分支语句又叫条件判断语句,是一种选择结构,包括 if 语句和 switch 语句;

1、⭐️if 语句⭐️

⭕️if语句:用于基于条件执行代码块

⭕️语法结构

if(表达式)    

    语句;

if (condition)
{//如果条件为真,执行这里的代码
}

⭕️if 语句还可以与 else 语句结合使用,用于在条件为 false 时执行另一段代码:  

if(表达式)    

    语句1;

else  

    语句2;

if (condition) 
{// 如果条件为真,执行这里的代码
} 
else 
{// 如果条件为假,执行这里的代码
}

⭕️if 多分支,语句可以嵌套,以便更复杂的条件检查:

if(表达式1)    

   语句1;

else if(表达式2)    

   语句2;

else    

   语句3;

if (condition1) 
{// 如果条件1为真,执行这里的代码
} 
else if (condition2) 
{// 如果条件1为假且条件2为真,执行这里的代码
} 
else 
{// 如果条件1和条件2都为假,执行这里的代码
}

👉代码演示:

#include <stdio.h>
//代码1
int main()
{int age = 0;scanf("%d", &age);if(age<18){printf("未成年\n");}
}

🔸输入的年龄若小于18,则输出“未成年”并换行;

int main()
{int age = 0;scanf("%d", &age);if(age<18){printf("未成年\n");}else{printf("成年\n");}
}

🔸输入年龄若小于18则输出未成年,否则输出成年; 

#include <stdio.h>
int main()
{int age = 0;scanf("%d", &age);if(age<18){printf("少年\n");}else if(age>=18 && age<30){printf("青年\n");}else if(age>=30 && age<50){printf("中年\n");}else if(age>=50 && age<80){printf("老年\n");}else{printf("老寿星\n");}}

🔸输入年龄若小于18,则输出少年;若大于等于18小于30,则输出青年;若大于等于30小于50,则输出中年;若大于等于50,小于80,则输出老年;若大于等于80,则输出老寿星; 

🔴注意:

else 的匹配问题:else 是和它离得最近的 if 匹配的。

2、⭐️switch 语句⭐️

👉在C语言中,switch 语句提供了一种根据不同条件执行不同代码块的方法,它是一种多分支选择结构,适用于一个变量或表达式有多种可能的值(比如5、6、7或以上个值)时进行决策。

👉switch 语句的语法如下:

switch (expression) 
{case constant1:// 如果expression等于constant1,则执行这里的代码break;case constant2:// 如果expression等于constant2,则执行这里的代码break;// 可以有任意数量的casedefault:// 如果expression与所有constant都不匹配,则执行这里的代码break;
}

⭕️其中 expression 通常是一个变量或整型表达式,constant1、2是整型常量表达式,每个 case 后跟一个常量值(如整数常量或字符常量),如果 expression 的值与某个 case 后的常量值相等,则执行该 case 后的代码块,直到遇到 break 语句为止。如果没有任何 case 常量与 expression 的值匹配,且提供了 default 标签,则执行 default 后的代码块。

⭕️break 语句用于退出 switch 语句,防止执行其他 case 的代码块。如果忘记在每个 case 的代码块末尾添加 break 语句,程序将继续执行下一个 case 的代码块,直到遇到 break 为止,这可能是程序员想要的行为,也可能导致错误,所以在使用时需格外注意。

👉以下演示了根据一周的不同天数打印不同的消息:

#include <stdio.h>int main() {int day = 3; // 假设今天是星期三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;default:printf("无效的天数值\n");break;}return 0;
}

🔸switch 语句检查变量 day 的值,并根据其值执行相应的 case 分支。由于 day 的值为3,程序将打印“今天是星期三”。如果 day 的值不在1到7之间,程序将执行 default 标签后的代码块。 

三、循环语句 💫

1、⭐️while 循环⭐️

🍀上文介绍的if语句,当条件满足的情况下,if语句后的语句执行,否则不执行。 但是这个语句只会执行一次。

❓由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。 那我们怎么做呢?

⭕️在C语言中,while 循环是一种基本的循环结构,它允许你重复执行一段代码,直到指定的条件不再满足。while 循环在循环开始之前检查条件,因此它可能完全不执行循环体中的代码,如果初始条件就不满足。while 循环的语法如下:  

while (condition) 
{// 循环体:只要condition为真,就会重复执行的代码块
}

👉condition 是一个表达式,每次循环开始前都会对其进行求值。如果 condition 的值为真,则执行循环体内的代码块。执行完循环体内的代码后,程序会回到 while 语句处,再次检查 condition 的值,若为真则再次执行循环体中的代码,这个过程会一直重复,直到 condition 的值为假,此时循环终止,程序会继续执行循环之后的下一条语句。  

🔸举例:

//计算1到5的和:#include <stdio.h>int main() 
{int i = 1; // 初始化变量iint sum = 0; // 初始化总和变量while (i <= 5) { // 当i小于或等于5时循环sum += i; // 将i加到总和i++; // 递增i}printf("1到5的和是: %d\n", sum); // 输出结果return 0;
}

🔸初始条件满足,循环开始执行。循环体中的代码将 i 加到 sum 上,并将 i 递增。每次循环结束后,都会再次检查 i 是否小于或等于5。当 i 的值递增至6时,条件不再满足,循环终止。

1.1、🌈while 循环中的 break 

#include <stdio.h>
int main()
{int i = 1;while(i<=10){if(i == 5)break;printf("%d ", i);i = i+1;}return 0;
}

🔸可见输出结果是1234,说明循环只输出了四次,到第五次结束循环;

⭕️总结:

break在while循环中的作用: 在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。 

1.2、🌈while 循环中的continue 

​
#include <stdio.h>
int main()
{int i = 1;while(i<=10){if(i == 5)continue;printf("%d ", i);i = i+1;}return 0;
}​

🔸可以看到,i 进循环之后,i 不断增加,当 i 等于5时,进行了一次 continue,之后输出就没有 i 等于5的值,但之后仍然进入循环,持续输出直到满足 while 的条件为止,循环结束;

⭕️总结:

continue在while循环中的作用就是: continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分,进行下一次循环的入口判断。

2、⭐️for 循环⭐️

⭕️语法: for(表达式1; 表达式2; 表达式3)

                      循环语句;

🔶表达式1为初始化部分,用于初始化循环变量的;

🔶表达式2为条件判断部分,用于判断循环时候终止;

🔶表达式3为调整部分,用于循环条件的调整。 

//使用for循环 在屏幕上打印1-10的数字。
#include <stdio.h>int main()
{int i = 0;//for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/)for(i=1; i<=10; i++){printf("%d ", i);}return 0;
}

⭕️在for循环中也可以出现break和continue,他们的意义和使用方法在while循环中是一样的,注意遇到 continue ,会跳过 continue 后面的代码,直接去循环的调整部分。

2.1、🌈for 循环的变种

int main()
{for (;;){printf("hehe\n");}return 0;
}

🔸此代码for循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,很容易导致问题,比如上述代码判断部分恒为真,最后输出无数次hehe,且不会停止,会一直循环。

int main()
{int i = 0;int j = 0;//这里打印多少个hehe?for (i = 0; i < 10; i++){for (j = 0; j < 10; j++){printf("hehe\n");}}return 0;
}

🔸此代码包含了一个双层嵌套的 for 循环结构。外层 for 循环控制变量 i ,内层循环控制变量 j,会输出10*10=100个hehe

int main()
{//代码3int i = 0;int j = 0;//如果省略掉初始化部分,这里打印多少个hehe?for (; i < 10; i++){for (; j < 10; j++){printf("hehe\n");}}return 0;
}

🔸此代码最后只打印出10个hehe,这是因为 i 和 j 都省略了初始化部分,尤其是 j 省略了 j=0,这会导致第一次外循环进来的时候,j 的内循环已经循环了三次,j 已经变成10了,当 i 再次增加的时候内循环就进不去了,所以只输出了10个。

2.2、🌈for 循环与 while 循环

🔶while 循环在循环开始前检查条件,如果条件为真,则执行循环体中的代码。 

适用场景:

🔸当循环的结束条件在循环体内部动态计算时。

🔸当只需检查一个条件就决定是否继续循环时。 

🔶for 循环也用于重复执行代码,但它在循环开始前就初始化变量,并在每次循环结束时更新变量,检查条件

适用场景:

🔸当已知循环的执行次数时。

🔸遍历数组或集合等需要计次遍历的情况。

区别:

🔶初始化:for 循环将初始化、条件检查和步进操作集于一体,适合于执行已知次数的循环;while 循环在循环开始前仅检查条件,适用于未知循环次数的情况。

🔶代码结构:for 循环的代码结构集中,使得循环的初始化、条件和步进一目了然,便于阅读和管理;while 循环的这些元素可能分散在代码的不同部分,需要更多的注意力来确保逻辑正确。

3、⭐️do...while() 循环⭐️

⭕️语法: 

do

循环语句;

while(表达式);

⭕️do while循环至少执行一次,使用的场景有限,所以不是经常使用。 

int main()
{int i = 10;do{printf("%d\n", i);} while (i < 10);return 0;
}

🔸从显示结果来看,do while()循环先执行一次代码块内容,之后才进入while语句中的判断,所以输出一次10。

🔸在do while() 循环中也可以出现break和continue,他们的意义和使用方法在while循环中是一样的

 本文到此结束💞💞💞感谢大家花费宝贵的时间阅读本文章,制作不易,希望大家多多支持呀😘😘😘,如有任何问题欢迎各位大佬在评论区批评指正!!!

http://www.lryc.cn/news/403931.html

相关文章:

  • Gateway源码分析:路由Route、断言Predicate、Filter
  • ARM体系结构和接口技术(十)按键中断实验①
  • PostgreSQL使用(二)——插入、更新、删除数据
  • 有关css的题目
  • 【开源库】libodb库编译及使用
  • 电力需求预测挑战赛笔记 Task3 #Datawhale AI 夏令营
  • Promise 详解(原理篇)
  • 动态内存经典笔试题分析
  • JS设计模式(一)单例模式
  • uniapp动态计算并设置元素高度
  • 直播架构如何设计核心节点和边缘节点
  • 自动驾驶-预测概览
  • 基于PSO算法优化PID参数的一些问题
  • 什么是决策树?
  • ASP 快速参考
  • (二)原生js案例之数码时钟计时
  • [CSS] 浮动布局的深入理解与应用
  • Linux云计算 |【第一阶段】ENGINEER-DAY2
  • 9.11和9.9哪个大?
  • 学懂C语言(十二):C语言中的二进制原理及应用
  • 科研绘图系列:R语言雨云图(Raincloud plot)
  • 优化教学流程和架构:构建高效学习环境的关键步骤
  • js | this 指向问题
  • 《昇思 25 天学习打卡营第 15 天 | 基于MindNLP+MusicGen生成自己的个性化音乐 》
  • Gitee 使用教程1-SSH 公钥设置
  • 理解Cookie、Session和Token
  • 概率论原理精解【1】
  • 数据结构(二叉树-1)
  • 巴黎奥运会倒计时 一个非常不错的倒计时提醒
  • 【Python】使用库 -- 详解