C语言学习笔记-流程控制

一、程序的流程控制

程序的流程控制指的是“程序怎么执行”。程序哪些先执行,哪些后执行,哪些不执行,哪些多次执行,属于流程控制的内容。
流程控制分为三类,顺序执行,选择执行和循环执行。顺序执行很简单,就是从第一行执行到最后一行,比如“hello world”。

#include <stdio.h>

int main(void){
	printf("hello world!\n");
	
	return 0;
}

1.1 选择执行

选择执行就是有些代码可能执行,有些代码可能不执行,程序会有选择的执行代码。也就是C语言中的if和switch语句。

1.1.1 if语句

if语句的基本格式如下:

if (expression is true) {
	statement;
}

功能:如果表达式为真,就执行下面的语句;如果为假,就不执行下面的语句。

if…else语句基本格式如下:

if (expression 1) {
	statement 2;
} else {
	statement 3;
}

以上语句等同于运算符中的三目运算符

expression 1 ? statement 2 : statement 3

需要注意的是

  1. if语句最好加上else,虽然不会报错,但是存在漏洞
  2. else后面不能加表达式,只有if后面才能加表达式

1.1.2 switch语句

switch语句也是一种选择语句,也叫做多分支语句。实际上if和switch是可以相互替代的,但是如果if嵌套较多,在实际开发中是不可取的,所以会换成switch,一般嵌套if在三层以内时会使用if,大于三层会选择switch。基本格式如下:

switch (expression) {
	case constant-expression 1:	statement 1;
	break;	/*可选的*/
	case constant-expression 2:	statement 2;
	case constant-expression 3:	statement 3;
	……
	case constant-expression n:	statement n;
	default:	statement n + 1;    /*可选的*/
	
}

需要注意的是:

  1. switch后面的表达式必须是整数类型,可以是int型变量,char型变量,也可以是整数或字符常量。但绝不可以是float型变量,double型变量,小数常量。编译时会报语法错误
  2. switch下的case和default必须用一对大括号{}包含起来。
  3. 当switch后括号内的表达式与某个case后面的常量表达式的值相等时,就执行case后面的语句。执行完以后就会移到下一个case继续执行。如果不想执行其他case后面的语句,需要加上break语句,跳出switch
  4. 如果switch表达式的值与所有的case后面常量表达式的值都不相等,那就执行default语句。也可以选择不要default,但跟if…else一样,最好还是加上default
  5. 每个case后面的常量表达式的值必须互不相同。case和default的顺序不影响最后结果,但是最好还是按照顺序写,便于阅读

1.2 循环执行

循环执行就是“某些代码会被重复执行”。

1.2.1 for循环

for循环的基本格式如下:

for (init-expression; condition-expression; increment-expression) {
	statement;
}

需要注意的是:

  1. for循环中的表达式是用分号“;”隔开
  2. “for (init-expression; condition-expression; increment-expression)”语句后不要加分号,直接接大括号,也就是循环体。

for循环的执行过程如下:

  1. 求解“初始化表达式”。
  2. 求解“条件表达式”,若值为真,则执行for循环中的循环语句,然后执行第三步;若为假,则结束循环,转到第五步
  3. 求解“自增表达式”
  4. 转回第二步继续执行
  5. 循环结束,之心for语句下面的语句

1.2.2 while循环

while循环的格式如下:

while (condition-expression) {
	statement;
}

while循环执行过程如下:

  1. 当条件表达式为真,就执行循环体
  2. 执行完成后判断表达式是否为真,如果为真,就继续执行
  3. 直到表达式为假,跳出循环

1.2.3 do…while循环

do…while循环的格式如下:

do {
	statement;
} while (condition-expression);

do…while循环与while循环比较相似,唯一的区别在于do…while循环会先执行一次循环,然后在判断条件表达式是否为真,若为真,则重新执行循环体;若为假,则跳出循环。
注意:

  1. for循环可以和while循环等价转换,但do…while与while和for循环不等价
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值