【C语言笔记】第三章 程序设计结构:选择、分支和循环

程序设计结构:选择、分支和循环

      • 3.1选择结构
        • 一、基本结构
        • 二、相关的运算符和表达式
        • 三、多重选择
      • 3.2循环结构
        • 一、while循环
        • 二、for循环
        • 三、 do…while循环
        • 四、三种循环的比较
        • 五、控制语句:break和continue

程序设计包含三种基本结构:顺序、选择和循环,在顺序结构中,各语句是按自上二下的顺序执行的,执行晚上一个语句就自动地执行下一个语句,是无条件的,不必做任何判断,是最简单的程序结构。整体上看,几乎所有程序都是顺序结构之上的各种变幻。而不管在任何一种编程语言当中,程序的组织实际上都脱离不开这几种结构。

3.1选择结构

一、基本结构

1.C语言中包含两种选择语句:
(1)if语句,用来实现两个分支的选择结构
(2)switch语句,用来实现多分支的选择结构
2.基本结构:
(1)单独的if语句

if(表达式)
	语句

在这种结构中,当表达式的值为非假,即不为0时,执行语句。
(2)if…esle语句

if(表达式)
	语句1
else
	语句2

在这种结构中,当表达式的值为非假,执行语句1,否则执行语句2。
(3)if…else if…else

if(表达式1)
	语句1
else if(表达式2)
	语句2
else

执行过程和(2)类似。
除了这三种基本结构外,在每种结构的语句部分,都可以是代码块,或者嵌套其他的if语句。
else语句在和if配对时,采用就近原则,当一个else语句附近找不到未配对的if语句时,程序会产生语法错误。

二、相关的运算符和表达式

1.关系运算符和关系表达式

运算符 优先级
>(大于)
<(小于)
>=(大于等于)
<=(小于等于)
==(等于)
!=(不等于)

对于a>b这样的关系表达式,其值只有真和假,在C的逻辑预算中,用1表示真,0表示假。
但在if等语句的条件判断框中,“非0”均为真。

2.逻辑运算符和逻辑表达式

运算符 含义 举例 说明
&& 逻辑与 a&&b 如果a和b都为真,则结果为真,否则为假
|| 逻辑或 a||b 如果a和b有一个以上为真,则结果为真,否则为假
逻辑非 !a 如果a为假,则!a为真
  • 对于&&,如果第一个表达式为假,则不判断第二个表达式
  • 对于||,如果第一个表达式为真,则不判断第二个表达式

3.条件运算符和条件表达式

表达式1?表达式2:表达式3

若表达式1结果非假,则执行表达式2,否则执行表达式3。

三、多重选择

1.基本结构

switch(表达式)
{
	case constant1:
		statemen;
		break;
	…
	default:
		statement;
}

在switch后面圆括号里的表达式被求值,随后程序扫描标签列表,知道搜索到一个与该值想匹配的标签,跳到那一行。如果灭有相匹配的标签,执行default语句,否则执行接下来的语句。
如果只想在switch语句中处理一种情况,必须在该标签内部加上break语句。

3.2循环结构

一、while循环

while(表达式)
{
	语句;
}

while语句创建了一个在判断表达式变为假之前重复执行的村换,这是一个入口条件循环,是否执行循环的决定条件是在进入循环之前就做出的,它有可能永远都不被执行。
其执行流程如下图。
【C语言笔记】第三章 程序设计结构:选择、分支和循环_第1张图片

二、for循环

for(初始化;条件判断;更新)
{
	执行语句
}

for语句使用由分号分开的三个控制表达式来控制循环过程,初始化表达式只在循环执行之前执行一次,然后对条件判断表达式求值,如果该表达式为非假,则循环被执行一次,计算更新表达式后再次检查条件判断表达式。for语句是一个入口条件循环,有可能一次也不执行。括号内的三个表达式可以省略,但分号不能省略。表达式部分可以是由逗号运算符分割的多个表达式。for语句可以和while语句相互转换。

【C语言笔记】第三章 程序设计结构:选择、分支和循环_第2张图片

三、 do…while循环

do
{
	语句;
}
while(表达式)

do…while语句创建了一个在判断表达式为假之前重复执行的循环,是一个退出条件循环,是否再次执行循环的决定是在执行了一次循环之后做出的,因此循环必须至少被执行一次。
【C语言笔记】第三章 程序设计结构:选择、分支和循环_第3张图片

四、三种循环的比较

1.三种循环都可以用来处理同一问题,一般情况下可以互相替代。
2.在while循环和do…whileU型你换中,只在while后面的括号内指定循环调点,因此为了是循环能正常结束,应在循环体内包含是循环趋于结束的语句。
for循环可以在最后一个表达式中包含是循环趋于结束的操作,甚至可以将循环体中的操作全放到表达式3中。因此for语句的功能更强,凡是用while循环能够完成的,用for循环都能实现。
3.用while和do…whileU型你换是,循环变量的初始化操作应在语句之前完成,而for语句可以在第一个表达式中实现。
4.三种循环都可以使用控制语句。

五、控制语句:break和continue

语句 效果
break 结束最内层循环
continue 结束本次循环

参考文献:
[M]谭浩强.C程序设计.清华大学出版社,2017
[M]Stephen P.C Primer Plus.人民邮电出版社,2005

你可能感兴趣的:(C语言,程序,C语言,循环,程序设计)