C语言基础|——控制语句

四、C语言控制语句

4.1 C 语言控制语句

类别语句
条件判断语句 i f 语 句 、 s w i t c h 语 句 if语句、switch语句 ifswitch
循环执行语句 d o    w h i l e 语 句 、 w h i l e 语 句 、 f o r 语 句 do\;while语句、while语句、for语句 dowhilewhilefor
转向语句 b r e a k 语 句 、 r e t u r n 语 句 、 g o t o 语 句 、 c o n t i n u e 语 句 break语句、return语句、goto语句、continue语句 breakreturngotocontinue

4.2 分支结构(条件判断)语句

4.2.1 if 语句

(1)单分支:如果表达式的值为真,则执行其后的语句,否则不执行该语句。
在这里插入图片描述

if(表达式)
	{语句};

(2)二分支:如果表达式的值为真,则执行语句1,否则执行语句2。
在这里插入图片描述

if(表达式)
	{语句段1;}
else
	{语句段2;}

(3)多分支:
在这里插入图片描述

if(表达式1)
	{语句段1;}
else if(表达式2)
	{语句段2;}
else if(表达式3)
	{语句段3;}
	......
else
	{语句段n;}

4.2.2 条件运算符

条件运算符:是一个三目运算符,其求值规则为:如果表达式1的值为真,则以表达式2的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。

表达式1? 表达式2:表达式3;
max = (a>b)?a:b; //其语义为 max 为 a, b 中的最大值

注意点:
(1)条件运算符的运算优先级低于关系运算符和算术运算符,但高于赋值符;
(2)条件运算符的结合方向是 自右至左

a>b?a:c>d?c:d 应理解为 a>b?a:(c>d?c:d)

4.2.3 switch 语句

switch(表达式){
	case 常量表达式1: 语句1;
	case 常量表达式2: 语句2;
	......
	case 常量表达式n: 语句n;
	default : 语句n+1;
	}

4.3 循环控制语句

4.3.1 goto 语句和 if 语句构成循环

goto 语句格式为:goto 语句标号; goto 语句常与 if 条件语句连用,当满足某一条件时,程序跳到标号处运行;标号必须与 goto 语句同处于一个函数中,但可以不在一个循环层中。如:

// 实现 0,1,2,....,100 的累加
main()
{
	int i, sum;
	i = 1, sum = 0;
loop: if (i<=100)
				{sum = sum + i;
				i++;
				goto loop;}
}

goto 语句通常不用,主要因为它将使程序层次不清,且不易读,但在多层嵌套退出时,用goto语句则比较合理。

4.3.2 while 语句

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

计算表达式的值,当值为真(非0)时,执行循环体语句。
在这里插入图片描述

// 实现 0,1,2,....,100 的累加
main()
{
	int i, sum;
	i = 1, sum = 0;
	while(i<=100)
		{sum = sum + i;
		i++;} 
}

4.3.3 do-while 语句

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

这个循环与 while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此, do-while 循环至少要执行一次循环语句。
在这里插入图片描述

// 实现 0,1,2,....,100 的累加
main()
{
	int i, sum;
	i = 1, sum = 0;
	do
		{sum = sum + i;
		i++;}while(i<=100) 
}

4.3.4 for 语句

for(表达式1; 表达式2; 表达式3) {语句;}

for(循环变量赋初值;循环条件;循环变量增量){语句;}

其执行过程为:
(1)先求解表达式1;
(2)求解表达式2,若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步;若其值为假(0),则结束循环,转到第(5)步;
(3)求解表达式3;
(4)转回上面第(2)步继续执行;
(5)循环结束,执行for语句下面的一个语句。

在这里插入图片描述

// 实现 0,1,2,....,100 的累加
main()
{
	int i, sum;
	for(i=1; i<=100; i++)
		{sum = sum + i;}

4.3.5 break 语句:

break;
(1)当break语句用于do-while、for、 while循环语句中时,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起。即满足条件时便跳出循环;
(2)当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;如果没有break 语句,则将成为一个死循环而无法退出

注意:
(1)break 语句对 if-else 的条件语句不起作用;
(2)在多层循环中,一个break语句只向外跳一层。

4.3.6 continue 语句

continue;
continue 语句的作用是跳过循环本中剩余的语句而强行执行下一次循环;continue语句只用在for、while、do-while等循环体中,常与 if 条件语句一起使用,用来加速循环。

continue 与 break 用于循环时,之间的差别如下:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值