C语言——分支语句_学习笔记

本文介绍了编程中的分支语句,包括if语句的基本用法,如单分支、双分支和嵌套使用,强调了else总是匹配最近的if。还讨论了switch语句的结构和注意事项,以及条件运算符(三目运算符)的使用,展示了如何根据条件返回不同值。
摘要由CSDN通过智能技术生成

分支语句概述

分支语句的作用:

用于根据特定条件执行不同的代码块。它们控制程序的流程,允许开发者在不同的选项之间进行选择。
分支语句的使用使得程序更加灵活,可以适应不同的情况和需求。

分支语句的分类

if语句

if语句是最常用的分支语句之一。其基本语法如下:

只存在两种结果时
if (判断条件)
 {
 条件为真时需要进行的操作
}
else
{
不满足判断条件时要进行的操作
}
if的嵌套
if(表达式1)
	{语句1;}
	if(表达式2)
		{语句2;}
		if ......
if的多分支情况
if (表达式1)
	{语句1;}
else if (表达式2)
	{语句2;}
else 
	{语句3;}

else语句一般是和if语句连用的,也可以视情况而省略不写else语句。总结一下,有if语句,不一定有else语句;但是,有else语句,就一定要有与之搭配的if语句。

易错知识点

else和if的匹配问题
如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。
例如:

#include <stdio.h>
int main()
{
 int a = 0;
 int b = 2;
 if(a == 1)
	 if(b == 2)
 		printf("hehe\n");
 else
 	printf("haha\n");
 return 0;
}

输出结果:什么都不输出
在这里插入图片描述
很多初学者,上来以判断 a 是 0,不等于 1 ,那就执⾏ else ⼦句,打印 haha,其实这样是错误的。把代码写的更规范些,加一下括号,这样就会清晰很多。如下:

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("hehe\n");
		else
			printf("haha\n");
	}
	return 0;
}

或者如果我们希望else确实和第⼀个if匹配,可以这样修改代码:

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("hehe\n");
	}
	else
	{
		printf("haha\n");
	}
	return 0;
}

输出结果:
在这里插入图片描述
这里提醒我们,一定要规范写代码,该缩进的缩进,该写括号的加上括号,这样可以使我们的代码的逻辑更加清晰,可读性更高。

switch语句

switch语句用于根据不同的条件执行不同的代码块。它通常用于替代多个if语句,使代码更简洁。switch语句的基本语法如下:

switch (expression_整形表达式)
 {
  case 整形常量表达式1:
    语句1;
    break;
  case 整形常量表达式1:
    语句2;
    break;
  default:
    语句3;
    break;
}

在switch语句中,switch后面必须要接上一个整形表达式,它用于匹配不同的case标签。如果expression的值与某个case标签的值相匹配,则执行相应的代码块。如果没有匹配的case标签,则执行default标签中的代码块。

易错知识点
switch语句中,遗漏break

switch语句中,只有搭配了break才能真正实现分支,程序在遇到break时才会跳出switch语句,如果没有break语句,则程序会继续往下执行。
例如:
在这里插入图片描述

7除以3本来余数是1,但是程序运⾏的结果多了⼀⾏“余数是2”的打印。这就是没有加break的原因。所以写switch语句时不要忘了break。

switch语句中,错误输入提醒, default

将输入的值不符合我们要求的情况放进default语句中,来保证能得到反馈。例如:

#include <stdio.h>
int main()
{
    int day ;
    scanf("%d", &day);
    switch (day)
    {
    case 1:
        printf("星期一\n");
        break;
    case 2:
        printf("星期二\n");
        break;
    case 3:
        printf("星期三\n");
        break;
    case 4:
        printf("星期四\n");
        break;
    case 5:
        printf("星期五\n");
        break;
    case 6:
        printf("星期六\n");
        break;
    case 7:
        printf("星期天\n");
        break;
    default:
        printf("输入非法,请输入1-7的整数");
    }
    return 0;
}

输入0时,输出结果为:
在这里插入图片描述

条件运算符(三目运算符,含三个操作数)

条件运算符(也称为三目运算符)是C语言中另一种常用的分支语句。它用于在条件为真时返回一个值,否则返回另一个值。条件运算符的基本语法如下:

result = (condition) ? value1 : value2;

如果条件为真,则返回value1的值,否则返回value2的值。条件运算符通常用于简化if语句的代码。

例如:

int main()
{
	int a;
	int result;
	scanf("%d",&a);
	result = (1 == a) ? 2 : 3;
	printf("%d", result);
	return 0;
}

输入1,输出2:
在这里插入图片描述

输入除1以外的数,都输出3:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值