分支循环语句分为两种结构:选择结构(if、switch)、循环结构(for、while、do...while、goto)。
1.分支语句(选择结构)
通过对条件真假的判断来选择程序走向的语句。
1.1.if语句
if语句表达形式如下:
综上:if语句中,表达式条件为真则执行if中的语句,为假则执行else中的语句。
if语句使用范例:
注意:在if语句和else语句下如果行执行多个语句需要使用{}(大括号)来括住,两个语句当然需要用;(分号)隔开。具体格式如下:
需要注意的是{ }中是一个代码块。
1.1.1.if嵌套
注释:在if语句嵌套中对if语句表达式的判断是一体的-----可以理解为(表达式1&&表达式2)。其中else语句可有也可以没有。如果有else,else则为if的一部分;如果没有,判断if是否执行之后则结束。
要注意else语句不能单独使用,必须跟在if语句之中。
2.1.悬空else语句
在上面的语句中没有{}(大括号),使代码表达不清楚。
下面用{}进行优化
优化后便让代码更加清晰,需要注意的是,else语句跟在离它最近的if进行匹配。
3.1.switch语句
switch语句与if语句相似,不同的是if语句只有两个分支选择,而switch语句可以提供多个分支。
语句就是case语句:
3.1.1.break语句
switch语句中,break是不可或缺的,使用break才能帮助switch实现多个分支。
break语句跟在case中的语句之后,如果不使用break,则会执行switch语句{}(大括号)中的所有语句,分支也就不存在了。
switch语句范例:
从上面可以观察到switch的多个分支,但这样写显得太过繁琐,以下是通过break语句的特性进行的优化:
break语句的作用是结束当前语句,要注意的是,break语句要跟在case语句之后,但是根据具体需求,则可以利用break来简化语句。
3.1.2.default语句
当switch语句中的表达式没有一项与case的值相匹配,则可以执行default语句,其中一个switch语句中只能出现一个default语句,它可以放在switch中的任意一个位置,但是一般它都放在switch语句的末尾。
default语句的使用与否取决于你是否想要忽略不匹配值。
注意事项:
1.case之后必须跟的是整型类型或者是字符型;
2.case与常量之间要有空格隔开;
3.每个case后的常量必须不同,否则会使语句执行多个方案;
4.多个case可以使用同一个执行语句;
5.case之后要跟break语句,否则会使多个语句一起执行;
4.循环结构(while、for、do...while)
循环结构是c语言中对某一功能进行重复执行的一种结构,通过对条件真假的判断来执行循环体,若条件为真,则执行循环体,反之,则推出循环。通过对循环结构的区分,可以分为先判断后执行和先执行后判断两种。
4.1.while语句
while语句结构如下:
while语句范例如下:
4.1.1.while语句中break和continue的运用
1.break语句
在while语句中使用break会使语句终止执行。
实例:
当i++执行到i=5时,经过if语句的判断则会执行break,终止循环。
2.continue语句
在while语句中使用continue作用是跳过当前条件下的循环,即跳过本次循环体,进行下次的条件判断,执行下一次的循环。
实例:
上面这串代码中,continue所起到的作用就是:当i=5时,跳过打印。
4.2.for语句
for语句中,初始化语句只执行一次,每次循环需要判断条件是否为真,然后执行循环体,之后进行调整。因此,for语句中循环条件比循环体多执行一次。
for语句结构:
表达式1:进行初始化,初始值可以为零,只执行一次
表达式2:判断语句,对循环体进行判断
表达式3:调整部分,对循环体进行调整。在循环体执行完后执行
for语句实例:
该语句执行的是打印1~10之间的数字。
4.2.1.for语句中的break和continue
1.break
在循环过程中,如果条件不满足,则终止循环。
2.continue
停止执行当前条件下continue后面的语句,进行下一次循环。
4.3.do...while语句
该语句先执行一次循环体,然后进行判断,若为真,则进行下一次循环,若为假,则终止循环。
从它的基本结构之中可以看出,在do...while语句中,循环体最少执行一次。
5.goto语句
通过下面一段代码可以对goto语句有一定的认识:
通过上面的代码可以发现,goto语句在某一条件下,可以跳出语句,直接来到标记处,再次执行标记之后的语句。