[初识C语言基础篇] 分支语句(二)

本文详细介绍了C语言中的分支语句,包括if语句、switch语句的使用、特点以及三目运算符的条件判断功能。通过实例演示了如何利用这些结构优化代码逻辑,提高程序效率。
摘要由CSDN通过智能技术生成

为什么需要分支语句?

分支语句形似一条河流,河流在交叉口会有许多分支,在程序执行的过程中亦是,程序是根据人的需求来编写的,程序由一条条的语句组合成,每条语句中间出产生某种必然的逻辑关系,单个的语法无法完成要执行的命令,这时就需要分不同的情况来讨论程序执行的下一步。

C语言中三大分支语句 

一、if语句

二、switch语句

1.基础语句

1.1  switch表达式后和case常量表达式必须是是整型或者枚举型

1.2 case后面必须跟整型常量表达式 

1.3 break语句的作用

1.4  default语句的作用

2. 小练习

三、三目运算符

3、总结


二、switch语句

1.基础语句

程序出现的分支情况较多,若用if,else if,else进行各个情况的编写时,代码看起来并不是那么舒适,而switch语句根据需求者的不同需求执行对应的代码块。它根据表达式中规定的数值,与各个case标签进行比较,如果相匹配则执行对应的代码块。

  • 在一个 switch 中可以有任意数量的 case 语句,每个 case 后跟一个要比较的值和一个冒号。
  • case 之后的常量值类型必须与switch 中的变量具有相同的数据类型
  • switch语句可以包含一个可选的default标签,用于处理所有情况都不匹配的情况。

switch(整型常量表达式)
{
      case 常量1:

                语句列表1;

      case 常量2:

                语句列表2;
}

1.1  switch表达式后和case常量表达式必须是是整型或者枚举型


下图代码中switch后跟的是浮点型数值,编译代码时将会出错,

1.2 case后面必须跟整型常量表达式 


注意!注意!注意! 下图代码中第10行case后面跟的是int型的一个变量,编译时报错:

[Error] the value of 'n' is not usable in a constant expression

case后面一定跟的是常量!

1.3 break语句的作用


当程序进行到switch语句时,会根据switch后面记录的整型表达式的值,然后与case后面的常量进行匹配,当被输入的变量等于 case 中的常量时,case 后跟的语句将被执行,直到遇到 break 语句,switch分支语句结束。

#include<stdio.h>
int main()
{
    int wage;
    printf("工资这周几发放:"); 
    scanf("%d",&wage);
    switch(wage)
    {
        case 1:
            printf("周一\n");
//            break;  
        case 2:
            printf("周二\n");
//            break;
        case 3:
            printf("周三\n");
//            break;    
    }
    return 0;
}                      

以上的代码中的break被注释掉了,当被输入的变量等于 case 中的常量时,程序会连带把之后case中的语句执行,直到整个switch语句结束。而当在匹配成功的case语句下的代码块中遇到 break 语句时,switch 将会终止,控制流将跳转到 switch 语句后的下一行。不是每一个case语句中都需要包含 break。如果 case 语句不包含 break,控制流将会继续后续的 case,直到遇到 break 为止。

1.4  default语句的作用


当case后的常量跟switch后面的表达式值都不匹配的时候,就说明输入的值可能存在问题,那么default语句这时就会被执行,起到一个提示的作用。default语句也可以放在 switch代码块的前面、中间,但一般按习惯来说是放在最后。

2. 小练习

请计算m,n的值?

#include<stdio.h>
int main()
{
	int n = 1;
	int m = 2;
	switch(n)
	{
		case 1: m++;
		case 2: n++;
		case 3:
			switch(n)
			{
				case 1: n++;
				case 2: 
						m++;
						n++;
						break;
			}
		case 4: m++;
		        break;
		default:
			break;
	}
	printf("m = %d, n = %d\n",m,n);
	return 0;
}

 大家可以将代码复制到自己的电脑上,运行结果,进行一步步的调试看看程序的执行过程是怎么样的,相信你会对switch分支语句有更深的理解!!!(偷偷告诉你们答案:m = 5, n = 3)

三、三目运算符

三目运算符又称条件运算符,条件运算符是一种简洁的条件判断和赋值语句。它的语法形式是表达式1 ? 表达式2 : 表达式3,其中表达式1是一个条件表达式,如果它的值为真,则执行并返回表达式2的值;否则执行并返回表达式3的值。

条件表达式通常用于赋值语句之中。例如:

if(a>b)  max = a;   else  max = b;

可用条件表达式写为 max = (a>b)?a:b; 该语句的含义是:若a>b为真,则把a赋予max,否则把b 赋予max。

3、总结

最近在重新温习C语言,在B站大学跟着鹏哥学C,会记录下来学习的知识点,若有哪里不对的地方,请大家评论区给我留言,有什么好的学习建议也可以留言哈,我会慢慢改进的!!!

  • 34
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值