分支语句和循环语句

前言:

各位小伙伴大家好,欢迎大家来到C语言第二模块分支语句和循环语句的详解。在这里你将学到更多有趣的C语言知识,if else、if else if …… else 、switch、while、for、do……while等语句的使用规则。

本模块的讲解思路由思维导图给出:

一、C语言的语句

在C语言中,语句是以分号结尾的字符序列,是程序最基本的执行单位,分号是C语句的必要组成部分。书写程序代码时,一行可以写几个语句,一个语句也可以写在多行上。C语句包含多种形式。

1.1说明语句

说明语句用于定义程序所使用的变量与类型。例如:

1.2表达式语句

表达式语句由表达式加上分号“;”组成。其一般形式如下:

表达式;

例如:

1.3分支语句

分支语句实现分支控制过程,根据条件成立与否执行不同的语句。有两种分支结构,即双分支的if-else语句与多分支的switch语句。例如:

该语句首先判断if后面的表达式(x>y),如果条件成立执行“z = x;”,否则执行“z = y;”if语句执行后,变量z中存放的是变量x与y中较大的值。

1.4循环语句

C语言中实现循环控制的语句由3种,即for语句、while语句和do-while语句。如要输出1~10之间的数,采用while语句代码如下:

上述代码中,首先定义一个整型变量i,然后通过while循环来打印1~10的数字,其中i<=10是循环执行条件。大括号中,循环体执行一次,打印一次i再让i自增1。这样就实现了循环打印1~10的数字。

1.5转向语句

转向语句有break语句、goto语句、continue语句、return语句。

1.6复合语句

用一对大括号{ }将若干语句顺序组合在一起所形成的语句称为复合语句。C语句中除复合语句外的其他所有都以分号结束。如:

1.7空语句

空语句只由一个分号构成。如:

1.8函数定义与调用

函数式完成特定功能的小模块,式C语言中唯一的一种子程序,常常在一个C程序中包含若干个函数,复杂的任务通过调用这些函数来完成。如函数:

其中,int max(int x,inty)为函数定义的头部,由函数的返回值类型、函数名、参数列表组成,花括号{ }中的部分称为函数体,函数体由数据表达与流程控制语句组成。有关函数的问题后面文章会详细解释,这里先大概了解以下就可以了。

1.9输入和输出

C语言没有提供用于数据输入及输出的语句,所有的输入和输出都是通过系统提供的有关函数(如scanf()和printf()函数)来实现的。

二 分支语句

分支语句讲解思路

2.1if语句

if语句执行流程图

2.1.1 if语句的语法结构

运用以上语法结构书写代码,代码如下:

解释:如果表达式的结果为真,则语句执行。

在C语言中0表示假,非0表示真。

2.1.2悬空else

我们来看代码:

注意:else的匹配,else是和它里的最近的if匹配的

2.1.3 if书写形式的对比

2.1.4练习

判断一个数是否为奇数。

输出1-100之间的奇数

2.2switch语句

在C语言中还提供了一种switch语句也可以实现多分支的选择。

switch语句的一般形式如下:

执行流程图:

关于switch语句的几点说明:

  • switch后的表达式可以是任何表达式,其值只能为整型、字符型、枚举型之一。

  • 每个case后面的常量表达式的值互不相同,否则会出现相互矛盾的现象。

  • 各个case和default的出现次序不影响执行结果。

  • 可以让多个case共用一组执行语句。

2.2.1在switch语句中的break

在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。可以是一个case一个break也可以是多个case一个break。

编写一个程序,实现如下功能:根据键盘输入的年、月、输出该年、该月的天数。

运行结果截图

break语句的实际效果是把语句列表划分为不同的分支部分。

在最后一个case语句后面加上break语句是一个编程好习惯。

2.2.2default子句

  • 如果表达的值与所有的case标签的值都不匹配怎么办?

其实也没什么,结构就是所有的语句都被跳过而已。程序并不会终止,也不会报错,因为这种情况在 C 中并不认为是个错误。但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?你可 以在语句列表中增加一条default子句,把下面的标签

  • default:写在任何一个 case 标签可以出现的位置。当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。

2.2.3练习

此程序的输出结果为什么

答案为:m = 5,n = 3。

三 循环语句

循环语句讲解思路

3.1while循环

while语句的基本语句

while语句在使用时,总是先要判断一个条件,所以可以用while语句实现“当型”循环。while语句的一般形式如下

while(表达式){

循环体;

}

while循环的执行流程图:

while循环使用示例

3.1.1while语句中的break和continue

break介绍

此时的运行结果为:1 2 3 4

由以上代码可知:循环中遇到break,就停止后期的所有循环,直接终止循环。所以:while中的break是用于永久终止循环。

continue介绍

代码举例:

此代码的运行结果为:1 2 3 4 死循环。

continue语句的作用是跳过循环体中continue后面的语句,继续下一次循环。continue语句只能用在循环语句中,常与if语句一起使用。

break和continue语句的区别:continue语句只是结束本次循环,并不终止整个循环的执行;而break语句的作用是强制终止整个循环程序。

3.1.2特殊代码讲解

这里可以看这个链接的博客:这个是我同学写的博客,他这部分的内容学的精细,所以就给个链接去看看他的博客。

多组输入

3.2for循环

for语句是C语言提供的功能强大、使用广泛的一种循环结构,不仅可以解决循环次数未知的循环问题,特别适合解决循环次数已知的循环问题。

3.2.1for语句的基本语法

for语句的一般形式为:

for(表达式1;表达式2;表达式3){ 循环体 }

表达式1

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

表达式2

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

表达式3

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

for语句的执行流程图

代码举例:

3.2.2break和continue在for循环中

本部分内容同3.1.1,把while循环换成for循环就可以了

3.2.3for语句的循环控制变量

  • 不可在for 循环体内修改循环变量,防止 for 循环失去控制。

  • 建议for语句的循环控制变量的取值采用“前闭后开区间”写法。

这些只是建议并不是绝对的。

3.2.4一些for循环的变种

3.2.5练习

3.3do-while循环

3.3.1do-while的语法

do

{

循环体

}while(表达式);

3.3.2do-while的执行流程图

3.3.3do语句的特点

循环至少循环一次,使用场景有限,所以不是经常使用。

代码举例:

运行结果为:1 2 3 4 5 6 7 8 9 10。

3.3.4 do-while循环中的break和continue语句

这里参考while循环中的break和continue语句

四、练习

1、计算n!

2. 计算 1!+2!+3!+……+10!

五、猜数字游戏

代码如下:

选择循环语句讲解结束,大家可以把后面的题做一做,答案可以私信我

  • 在一个有序数组中查找具体的某个数字n。

  • 编写代码,演示多个字符从两端移动,向中间汇聚。

  • 编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值