C语言分支语句

发布时间:2024年01月12日

? ? ? ? 分支语句包括if,if? else,switch三种语句,这些语句都支持互相嵌套使用。

????????在C语言中,表达式的结果有两种,一种是为真,也就是为非0;一种是为假,也就是为0。

那么什么时候表达式为真,什么时候为假呢?其实很简单。

看下面的例子(为真的情况)

表达式number == 25显然为真,则打印的值默认为1

(为假的情况)

表达式number == 20显然为假,则打印的值为0

一、if? 语句

	if (表达式)
		语句;

如果表达式的结果为真,则执行语句;为假,则不执行语句。

注意:if后面只能对应执行一条语句,如果想执行多条语句,需要把语句写在大括号内。

	if (表达式)
    {
	    语句1;
        语句2;
    }

二、if? else语句

	if (表达式)
		语句1;
	else
		语句2;

如果表达式的结果为真, 则执行语句1;为假,则执行语句2。

当然想在分支后执行多条语句时,需要把语句写在大括号内。

	if (表达式)
	{
		语句1;
		语句2;
	}
	else
	{
		语句3;
		语句4;
	}

注意: if后面是与最近的else结合成为if? else语句的,下面看代码并分析结果:

#include <stdio.h>

int main()
{
	int number = 25;
	if (number == 20)
		if (number == 25)
			printf("haha");
	else
		printf("hehe");
	return 0;
}

(可以先自己分析,之后再往下看,如果实在分析不出来也可以再往下看)

首先看表达式number == 20,显然是假的(也可以说不成立),那就不再执行第2个if语句了,而在第2个if语句后面是跟了一条else语句的(虽然没有对齐),所以组成了if? else语句,所以if? else语句都是不执行的,结果是什么也不打印。

?三、if? ? else?if? ?...? ?else语句

	if (表达式1)
	{
		语句1;
		语句2;
	}
	else if (表达式2)
	{
		语句3;
		语句4;
	}
    ...
	else
	{
		语句5;
		语句6;
	}

?如果表达式1为真,则执行语句1、语句2;为假,则判断表达式2是否为真,若为真,则执行语句3、语句4;为假,以此类推,最后若为假,执行语句5、语句6。

四、switch语句?

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

如果整形表达式的结果为真, 则执行switch语句里面的case语句或default语句;为假,则不执行switch里面的语句。

1.case语句

整形常量表达式如果等于整形表达式,则会从对应的这个case语句开始执行,到default语句前结束。

2.default语句(可以写在任意位置但不能影响整体的case逻辑)

如果所有的整形常量表达式都不等于整形表达式,则只执行default语句。

比如:输入一个数(1~7),判断今天是星期几(今天如果星期一就输入“1”)

#include <stdio.h>

int main()
{
	int day = 0;
	scanf("%d", &day);//接收输入的数
	switch (day)//表达式结果为day本身,则输入几则执行对应case语句
	{
		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://输入数字没有在1 到 7之间执行此语句
			printf("输入错误\n");
	}
	return 0;
}

注意:其中break的含义是跳过后面所有语句(只针对switch内的语句),执行一个case语句后便不再执行。(而continue只在循环里用到,分支语句不可用)

输入3,则会输出“今天星期三”

文章来源:https://blog.csdn.net/2301_78159447/article/details/135531933
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。