当前位置:网站首页>C语言 5:bool类型,关系表达式,逻辑表达式,分支语句,函数调用机制,break,continue,goto,return/exit跳转语句
C语言 5:bool类型,关系表达式,逻辑表达式,分支语句,函数调用机制,break,continue,goto,return/exit跳转语句
2022-07-29 14:23:00 【何小柒(qi)~】
文章目录
1. bool类型
bool类型只有true和false,0是false,其他情况都为false。
2. 关系表达式
运算结果都是bol值
注意:关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、>、>=的优先级相同,高于= = 和 ! = ,= =和 ! = 的优先级相同。需要特别注意:= =才表示等于比较,而 =表示赋值,大家要注意区分,切勿混淆。 |
3. 逻辑表达式
运算结果是bool值
4. 分支语句
4.1 if_else
一对花括号{ }就是一个代码块,块作用域
4.2 switch 多分支结构
4.2.1 定义
switch循环中只有break才能跳出循环否则一直执行下一个break语句
例题:输入学生成绩,求学生成绩取值
#include<stdio.h>
int main()
{
char grade = '#';
printf("itput grade:(A,B,C,D,E):");
scanf_s("%c", &grade);
switch(grade)
{
case'A':
printf("100-90 \n");
break;//A,B,C,D,E均为常量
case'B':
printf("89-80 \n");
break;
case'C':
printf("79-70 \n");
break;
case'D':
printf("69-60 \n");
break;
case'E':
printf("<60 \n");
break;
default:
printf("char error \n");
break;
return 0;
}
}
4.2.2 特点
- (1)switch 是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的 if else 语句。基本格式如下:(switch,case,break 和 default 都是关键字)
- (2)当变量表达式所表达的值与其中一个 case 语句中的常量值相符时,就执行此 case 语句后面的程序,并依次去执行后面所有case 语句中的程序,除非遇到 break 语句跳出 switch 为止;也就是说,整个 switch 执行结束了,接着会执行整个 switch 后面的代码。如果常量表达式的量与所有 case 语句的常量都不相符,就执行 default 语句中的程序。
所写的任何 switch 语句都必须遵循以下规则:
a. 只能针对基本数据类型中的整型类型使用 switch,这些类型包括 int、char 等。对于其他类型,则必须使用 if 语句。
b. switch()的参数类型不能为浮点数,字符串。(必须是整型类型)。
c. case 标签必须是常量表达式(constantExpression),如 42 或者’4’+20。
d. case 标签必须是惟一常量;也就是说,不允许两个 case 具有相同的常量值。
- (3)case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。
- (4)default 不是必须的。当没有 default 时,如果所有 case 都匹配失败,那么在 switch 中就什么都不执行。接着执行后续代码。
5. 函数调用机制
局部变量占用的内存是在程序执行过程中“动态”地建立和释放的。这种“动态”是通过栈由系统自动管理进行的。当任何一个函数调用发生时,系统都要作以下工作:
- 建立栈空间;
- 保护现场:主调函数运行状态和返回地址入栈;
- 为被调函数中的局部变量分配空间,完成参数传递;
- 执行被调函数函数体;
- 释放被调函数中局部变量占用的栈空间;
- 恢复现场:取主调函数运行状态及返回地址,释放栈空间;
- 继续主调函数后续语句。
6. 跳转语句
6.1 break语句
break语句只能用在switch语句和循环语句中,用来跳出switchi语句或提前终止循环,转去执行switch语句或循环语句之后的语句。
6.2 continue语句
continue语句只能用在循环语句中,用来终止本次循环。当程序执行到continue语句时,将跳过其后尚未执行的循环体语句,开始下一次循环。下一次循环是否执行仍然取决于循环条件的判断。
continue语句与break语句的区别在于,continue语句结束的只是本次循环,而break结束的是整个循环。
6.3 goto语句
(1)只能在本次主函数之内跳转,不能在函数体之外跳转。
(2)可以向上跳转,也可以向下跳转,但是向上跳转需注意不要跳转到函数定义之前,否则会造成程序二义性。
(3)跳转到标号之中
6.4 return/exit语句
return语句用于结束函数的执行,返回调用者,如果是主函数,则返回至操作系统。执行语句,从当前函数跳出,代表函数执行完成,return以下的所有函数均不执行。
exit终止当前语句,杀死程序执行进程,结束进程。
边栏推荐
- Topic 1125: - delegate * C language training
- WOLFLAB一方老师为什么要写网络虚拟化《VMware NSX-T卷2》路由架构-2
- 三 RedisTemplate 序列化机制配置实战
- Principles Of Mathematical Analysis, Third Edition免费下载地址
- 一篇适合新手的深度学习综述!
- 【Postman】下载与安装(新手图文教程)
- 尚硅谷大叔培训:揭秘Flink四种执行图——ExecutionGraph和物理执行图
- 请写出用Graphics2D类的新方法画一个图形的步骤(表格如何画斜线)
- 共享内存 - shmget填坑记
- 求教一下 现在最新版的flinkcdc能获取到oracle的ddl变更信息吗?
猜你喜欢
随机推荐
基于C语言实现的LL(1)分析
面试官:大量请求 Redis 不存在的数据,从而影响数据库,该如何解决?
企业需要知道的5个 IAM 最佳实践
Guangzhou Emergency Management Bureau released the top ten safety risks of hazardous chemicals in summer
【堡垒机小知识】硬件堡垒机是什么意思?其与云堡垒机有什么区别?
RAMAN CONFIGURE 命令都能实现哪些功能
嵌入式开发经验分享,把学习当作一种兴趣
求教一下 现在最新版的flinkcdc能获取到oracle的ddl变更信息吗?
rk3399驱动添加电池adc开机检测功能
函数柯里化
mysql datetime格式化日期(mysql start with)
苹果官方降价的原因找到了,它也面临销量下滑乃至出现库存问题
没遇到过这三个问题都不好意思说用过Redis
全面质量管理理论
基于C语言实现一个社交系统
C51 存储类型与存储模式
面对互联网的裁员潮,我们该何去何从?
PAT serie a A1021 Deepest Root
The reason for Apple's official price reduction has been found, and it is also facing declining sales and even inventory problems
Introduction to several methods of making custom welcome interface on Weiluntong touch screen