C语言入门(6/100)
书接上文 Day 4、 Day 5 的分支结构
与循环结构
等内容
我们继续学习与总结之前简单涉及的跳转语句:
- 跳转语句
return
break
continue
goto
一、四大跳转
C语言中提供了四大跳转语句, 分别是break、continue、goto、return
1.1 结束语句 break
我们先来看两段 switch
语句的代码
代码1:
代码2:
- 在这里唯一的不同是在
a = 2
后加了break
- 它的作用是阻止语句往下执行。
- 也就是说,
switch
语句要么从入口一直执行完毕;要么从入口开始执行,直到遇到break
终止。
再来看一段循环结构的代码。
代码3:
因此,我们从上述的三段代码,就可以对break
语句的定义、应用等有个简单的概括,如下:
- break:
- 立即跳出
switch
语句或循环
- 立即跳出
- 应用场景:
switch
示例:
- 循环结构
示例:
注
:
- 在多层循环中,一个
break
语句只向外跳一层
while(1)
{
while(2)
{
break;// 只对while2有效, 不会影响while1
}
printf("while1循环体\n");
}
break
下面不可以有语句,因为执行不到
while(2){
break;
printf("打我啊!");// 执行不到
}
1.2 结束语句 continue
- continue
- 结束本次循环开始执行下一次循环。
- 应用场景:
- 循环结构
示例:
注意
:break
语句与continue
语句的区别是:
- 循环结构
break
是跳出当前整个循环,continue
是结束本次循环开始下一次循环。
1.3 跳转语句 goto
- goto
- 臭名远扬的
goto
语句,是一种无条件分支语句注意
:goto
会破坏结构化程序设计流程,它将使程序层次不清,且不易读,所以慎用
goto
语句,仅能在本函数内实现跳转,不能实现跨函数跳转(短跳转)。但是他在跳出多重循环的时候效率还是蛮高的
使用格式:
goto 语句标号;
示例1:
#include <stdio.h>
int main(){
int num = 0;
// loop:是定义的标记
loop:if(num < 10){
printf("num = %d\n", num);
num++;
// goto loop代表跳转到标记的位置
goto loop;
}
}
示例2:
#include <stdio.h>
int main(){
while (1) {
while(2){
goto lnj;
}
}
lnj:printf("跳过了所有循环");
}
1.4 返回语句 return
- return
- 在涉及
函数
部分时,将重点阐述本知识点 - 结束当前函数,将结果返回给调用者
- 在涉及
一般形式:
return 表达式 //或者为: return (表达式);
注意
:
- 函数的值只能通过
return
语句返回主调函数 - 函数值的类型和函数定义中函数的类型应保持一致。
notes:如果两者不一致,则以函数返回类型为准,自动进行类型转换。
- 没有返回值的函数,返回类型为
void
。- 回顾 Day 2 学习的
主函数
部分
- 回顾 Day 2 学习的
void
函数中如果有return
语句,该语句只能起到结束函数运行的功能。
其格式为:return;