C语言的分支结构和循环结构
目录
一、选择结构(分支结构)
选择结构(分支结构):代码会被分成多个部分,程序会根据特定条件(某个表达式的运算结果)来判断到底执行哪一部分。
if 语句
在C语言中,使用if和else关键字对条件进行判断,并根据判断结果执行不同的语句。
格式:
[code]if (判断条件) { 语句块1 } else { 语句块2 }
执行过程:如果判断条件成立,那么执行语句块1,否则执行语句块2
判断条件中不是必须要包含关系运算符,它可以是赋值表达式,甚至也可以是一个变量。
语句块(Statement Block),就是由{ }包围的一个或多个语句的集合。如果语句块中只有一个语句,也可以省略{ },在 } 之后不需要再加分号 ,当然加上也没错。
单独使用 if 语句的格式:
[code]if (判断条件) { 语句块 }
执行过程:如果判断条件成立就执行语句块,而不满足条件时就直接跳过。
多个if else语句格式:
[code]if (判断条件1) { 语句块1 } else if (判断条件2) { 语句块2 } else { 语句块3 }
执行过程:从上到下依次检测判断条件,当某个判断条件成立时,则执行其对应的语句块,然后跳到整个 if else 语句之外继续执行其他代码。如果所有判断条件都不成立,则执行语句块n,然后继续执行后续代码。即一旦遇到能够成立的判断条件,则不再执行其他的语句块,所以最终只能有一个语句块被执行。
switch 语句
switch语句:用来代替简单的、拥有多个分支的 if else 语句
格式:
[code]switch ( 表达式 ) { case 整型数值1 : 语句1; break; case 整型数值1 : 语句1; break; ... default : 语句n; }
执行过程:首先计算“表达式”的值,然后和case后面的数值进行比较,当和某个数值相等时就会执行后面所有的语句。如果都不相等就执行 default 后的语句。
当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句。为了只执行某个分支,必须要在每个分支最后添加 break (当 break 关键字用于 switch 语句时,会终止执行整个 switch而执行整个 switch 语句后面的代码)。由于 default 是最后一个分支,匹配后不会再执行其他分支,所以也可以不添加break ; 语句。
case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量,可以是整型或字符型。
default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么就什么都不执行。
条件运算符
可以认为条件运算符是一种简写的 if else,完全可以用 if else 来替换。
格式:
[code]表达式1? 表达式2: 表达式3
条件运算符是C语言中唯一的一个三目运算符。
执行过程为:如果表达式1的值为真,则以表达式2 的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。
条件表达式通常用于赋值语句之中。
条件运算符的优先级低于关系运算符和算术运算符,但高于赋值符。因此 max=(a>b) ? a : b; 可以去掉括号写为 max=a>b ? a : b;
条件运算符的结合方向是自右至左。 a>b ? a : c>d ? c : d;应理解为:a>b ? a : ( c>d ? c : d );
二、循环结构
循环结构:程序会重新执行同一段代码,直到条件不再满足,或者遇到强行跳出语句(break 关键字)。
循环条件为真时进入循环
for循环
for 循环是最常用的循环,功能强大,使用灵活,完全可以取代其他循环。
格式:
[code]for (表达式1; 表达式2; 表达式3) { 语句块 }
表达式1:通常是初始化语句,也可以是其他语句。只在第一次循环时执行。
表达式2:循环条件,一般是关系表达式或逻辑表达式,也可是数值或字符,只要其值非零就执行循环体。
表达式3:很多情况下是一个带有自增或自减操作的表达式,以使循环条件逐渐变得“不成立”。
三个表达式都是可选项,都可以省略(但分号 ; 必须保留)。表达式1和表达式3可以是一个简单表达式也可以是逗号表达式。
执行过程:
while循环
格式:
[code]while (循环条件) { 循环体 }
执行过程:先计算循环条件表达式的值,当值为真(非0)时, 执行循环体,执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行 while 后面的代码。
整个循环的过程就是不停判断循环条件、并执行循环体代码的过程。
while 循环的整体思路是这样的:设置一个带有变量的循环条件,也即一个带有变量的表达式;在循环体中额外添加一条语句,让它能够改变循环条件中变量的值。这样,随着循环的不断执行,循环条件中变量的值也会不断变化,终有一个时刻,循环条件不再成立,整个循环就结束了。
do-while循环格式:
[code]do{ 循环体 } while (循环条件);
相比于其他循环,do-while 循环至少要执行一次循环体。
while(循环条件); 后的分号不能省略。
goto 语句
goto 语句也能构成循环结构。不过由于 goto 语句很容易造成代码混乱,维护和阅读困难,饱受诟病,不被推荐,而且 goto 循环完全可以被其他循环取代,所以后来的很多编程语言都取消了 goto 语句,goto 语句在实际开发中很难见到。
跳出循环
break语句 :当 break 关键字用于 while、for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足条件时便跳出循环。
continue 语句:跳过循环体中剩余的语句而强制进入下一次循环。continue语句只用在 while、for 循环中,常与 if 条件语句一起使用。
- C语言的分支结构和循环结构(一)
- C语言的分支结构和循环结构(二)
- C语言中分支结构及循环结构的简单介绍
- iOS C语言 分支结构 循环结构
- C语言的分支语句和循环结构知识点
- C语言_分支结构和循环结构
- C语言的分支结构和循环结构(三)
- C语言_04 三种程序结构 顺序, 选择(分支), 循环结构
- c语言——运算符、分支结构、循环结构
- C语言分支循环结构
- [编程] C语言循环结构计算π的值
- Xcode-c语言初接触-分支结构
- C语言中对于循环结构优化的一些入门级方法简介
- C语言进阶_笔记 第三章 选择结构和循环结构的程序设计
- 作业 2 分支、循环结构
- [分支循环](补)用分支结构实现输出三个数中的最大值
- C语言基础(四)分支结构、循环结构
- [iOS]C语言技术视频-02-程序分支结构(if...else)
- 分支结构、循环结构
- 20131019作业 2 分支、循环结构