首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C语言入门知识点(4.分支结构)(超详细)

C语言入门知识点(4.分支结构)(超详细)

作者头像
say-fall
发布2026-01-15 09:58:51
发布2026-01-15 09:58:51
770
举报
在这里插入图片描述
在这里插入图片描述

笔记里面有一些代码的首字母是大写的,自己写时候要用小写,这是OneNote编写时软件的问题。此笔记仅是我个人学习的笔记,接下来会持续更新,希望对初学者有所帮助,如果发现错误,望在评论区指正。

分支结构

if语句

if

形式:

  • if (表达式) 语句 解释:若表达式为真/表达式结果不为0,则语句执行,否则不执行 例子:输入一个数,判断是否为奇数
代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 2 == 1)
		printf("该数字是奇数\n");
	return 0;
}
else

解释:成立的话为if,不成立的话则为else 例子:

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 2 == 1)
		printf("该数字是奇数\n");
	else
		printf("该数字是偶数\n");

	return 0;
}
分支中包含多条语句

解释:if 和 else 默认只包含一条控制语句,如果要控制多条语句的话,要在 if/else 后加 {},意为一个代码块 例子:

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num % 2 == 1)
	{
		printf("该数字是奇数\n");
		printf("(-1)^(%d) = -1", num);
	}
	else
		printf("该数字是偶数\n");

	return 0;
}
嵌套if

解释:在if else语句中,else可以与另一个if语句连用,构成多重判断。一般情况下,用{}包含新的 if else 语句;也可以用简便写法(如下) 例子:

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num = 0;
	printf("请输入年纪:");
	scanf("%d", &num);
	if (num < 18)
		printf("未成年");
	else
	{
		if (num < 25)
			printf("青年");
		else 
			printf("青壮年");
	}
	return 0;
}

简便方法(将新的if语句缩写在else里面):

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num = 0;
	printf("请输入年纪:");
	scanf("%d", &num);
	if (num < 18)
		printf("未成年");
	else if (num < 25)
			printf("青年");
		 else 
			printf("青壮年");
	return 0;
}
悬空else问题

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

代码语言:javascript
复制
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 3;
	if (a == 1)
		if (b = 3)
			printf("%d", b);
	else
		printf("%d", b);
	return 0;
	
}
//输出空行

实际上代码:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 3;
	if (a == 1)
		if (b = 3)
			printf("%d", b);
		else
			printf("%d", b);
	return 0;
}

通过带上{},可以让代码更加简洁:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 3;
	if (a == 1)
	{
	if (b = 3)
		printf("%d", b);
	else
		printf("%d", b);
	}
	return 0;
}

关系操作符

:大于运算符 < :小于运算符 = :大于等于运算符 <= :小于等于运算符 == :相等运算符 != :不相等运算符 注意:多个关系运算符不宜连用 原因:例如,i<j<k,表达式会从左到右计算,此时得到(i<j)的结果为0或者是1,再由1和0与c作比较,达不到预期的效果,应该改为:“i<j && j<k”

条件操作符 (类似双分支)

条件操作符又叫三目操作符,需要接受三个操作数。 形式:exp1 ? exp2 :exp3 解释:如果exp1为真,计算exp2,结果返回exp2计算的结果;exp1为假,计算exp3,结果返回exp3计算的结果。

逻辑操作符

!:逻辑取反运算符 &&:逻辑与运算符,并且(全真为真) || :逻辑或运算符,或者(全假为假) (非0表示真,0表示假)

逻辑取反运算符 !

使用:在语句前面加 !,表示语句为假。

逻辑与运算符 &&

使用:加在两事件中间,表示并且的关系

逻辑或运算符 ||

使用:加在两事件中间,表示或者的关系

短路

解释:C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。 如果根据左操作数的结果就能知道整个表达式的结果,就不再对右边的表达式求值。这种情况称为“短路”。

switch语句

形式:

代码语言:javascript
复制
switch (expression){
	case value1:statement
	case value2:statement
	default:statement
	}

解释: switch (表达式){} 结果1:执行语句 结果2:执行语句 …… default(以上结果都没有):执行语句 注意: 1.case和后面的数字必须要有空格 2.每个case语句后面必须要有break语句,才能跳出switch语句

switch语句中的break和default

因为需要break才能跳出循环,所以可以调整break的位置 有时候没有计划中的结果,需要执行“输入错误” 例如:

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
	int day = 0;
	scanf("%d", &day);
	switch (day) {
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日");
		break;
	case 6:
	case 7:
		printf("休息日");
		break;
	default:
		printf("输入错误");
		break;
	}
	return 0;
}
switch中case和default的顺序问题

case和default无顺序,通常是把default放到最后

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分支结构
    • if语句
      • if
      • else
      • 分支中包含多条语句
      • 嵌套if
      • 悬空else问题
    • 关系操作符
    • 条件操作符 (类似双分支)
    • 逻辑操作符
      • 逻辑取反运算符 !
      • 逻辑与运算符 &&
      • 逻辑或运算符 ||
      • 短路
    • switch语句
      • switch语句中的break和default
      • switch中case和default的顺序问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档