C随笔--分支语句结构

分支语句(选择结构)

if语法结构

//最基础
if(表达式)
{
    return 语句;
}
    return 0;


//是否--条件成立返回语句1,否则返回语句2
if(表达式)
{
    return 语句1;
}
else
{
    return 语句2;
}
    

//多分支--(多分支一般不用if,用Switch)
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else if(表达式3)
    语句3;
else//不必要的时候else不写,代码也是正常运行的
    语句4;

 一:多行并列判断

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{

	/*int age = 19;//超过18执行为空
	if (age < 18)
		printf("未成年\n");
	return 0;*/

	/*int age = 20;//执行为成年
	if (age < 18)
		printf("未成年\n");
	else
		printf("成年\n");
	return 0;*/

    //多行并列判断
	int age = 99;//执行为长寿
	if (age < 18)
		printf("未成年\n");
	else if (age >= 18 && age < 28)
		printf("青年\n");
	else if (age >= 28 && age < 50)
		printf("壮年\n");
	else if (age >= 50 && age < 90)
		printf("老年\n");
	else
		printf("长寿\n");
	
}

运行结果:

 二:分if else俩个逻辑全局去判断


int main()
{
    int age = 49;
	if (age < 18)
		printf("未成年\n");
	else
	{
		if (age >= 18 && age < 28)
			printf("青年\n");
		else if (age >= 28 && age < 50)
			printf("壮年\n");
		else if (age >= 50 && age < 90)
			printf("老年\n");
		else
			printf("长寿\n");\
	}
}

 运行结果:

 

 代码不规范容易误读----else离最近没匹配的if进行配对

例一:规范写法输出空

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("昭君");
		else
			printf("嫦娥");
	}
	return 0;
}

规范的运行结果为空:

 不规范的运行也是空(如下图),编译器承认的else和红色的if配对,即使else位置读起来是和黄色if配对,如果真的想和黄色if配对,加一个大括号,一个大括号代表一个代码块。

加个大括号,此时else和最上面那个if配对。

 

Switch语句也是分支语句,常用于多分支的情况。

Switch(整型表达式)

{

        case 整型常量表达式:

        语句;

}

在Switch语句中,无法直接实现分支,需要搭配break才能做到。

break语句作用:是把语句列表划分为不同的部分。

default子句作用:超出限定范围输出空。在Switch语句只能出现一次,建议放在语句的最后面,他的位置没有限制,如果你想放最前面也是可以的。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
		printf("星期1\n");
		break;
	case 2:
		printf("星期2\n");
		break;
	case 3:
		printf("星期3\n");
		break;
	case 4:
		printf("星期4\n");
		break;
	case 5:
		printf("星期5\n");
		break;
	case 6:
		printf("星期6\n");
		break;
	case 7:
		printf("星期天\n");
		break;
	default:
		printf("输入错误\n");//这句话建议不写直接break
		break;
	}
}

运行结果:输入8执行

 Switch允许嵌套使用

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int n = 1;
	int m = 2;
	switch (n)
	{
	case 1:
		m++;
	case 2:
		n++;
	case 3:
		switch (n)//此时n=2,所以执行case 2
		{
		case 1://跳过
			n++;
		case 2:
			m++;
			n++;
			break;
		}
	case 4:
		m++;
		break;
	}
	printf("n = %d, m = %d\n", n, m);
	return 0;
}

运行结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值