C语言 5:bool类型,关系表达式,逻辑表达式,分支语句,函数调用机制,break,continue,goto,return/exit跳转语句


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. 函数调用机制

局部变量占用的内存是在程序执行过程中“动态”地建立和释放的。这种“动态”是通过栈由系统自动管理进行的。当任何一个函数调用发生时,系统都要作以下工作:

    1. 建立栈空间;
    1. 保护现场:主调函数运行状态和返回地址入栈;
    1. 为被调函数中的局部变量分配空间,完成参数传递;
    1. 执行被调函数函数体;
    1. 释放被调函数中局部变量占用的栈空间;
    1. 恢复现场:取主调函数运行状态及返回地址,释放栈空间;
    1. 继续主调函数后续语句。

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终止当前语句,杀死程序执行进程,结束进程。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值