您的位置:首页 > 编程语言 > C语言/C++

C语言的分支结构和循环结构

2019-04-14 16:58 99 查看

目录

一、选择结构(分支结构)

if 语句

switch 语句

条件运算符

二、循环结构

for循环

while循环

goto 语句

跳出循环

一、选择结构(分支结构)

选择结构(分支结构):代码会被分成多个部分,程序会根据特定条件(某个表达式的运算结果)来判断到底执行哪一部分。

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 条件语句一起使用。

 

 

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: