• 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
    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;
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

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


  • 相关阅读:
    中国之声广播在线收听,云听“正直播”在路上
    Linux vi编辑器的使用
    Tauri 入门教程
    linux系统安装 -----Centos 8 64位
    Prometheus-Prometheus安装及其配置
    氟化钙光学窗口保护镜片 光学元件红外测温窗口保护片
    哈希桶(闭散列开散列)模拟实现
    OpenCV Hough变换-直线检测
    【排错/运维】修复HDFS丢失、损坏以及副本数的问题
    day01 Linux
  • 原文地址:https://blog.csdn.net/qq_48580892/article/details/126013102