分支if和switch

目录

一.if语句

1.if的使用方法

2.if使用时的注意事项

3.悬空else

二.switch语句

1.switch的使用方法

2.switch使用时的注意事项

3.switch中break的使用

4.switch中default的使用


一.if语句

1.if的使用方法

if(判断){语句}
else(判断){语句}
else{语句}

2.if使用时的注意事项

        判断语句不能使用连等式,可以用逻辑操作符&&(并且)、||(或者)来表示

if(1<a<2)//这是一个错误的示范

if(a>1&&a<2)//正确

        判断语句的内容如果为假则返回0,如果为真或非零则返回1

    int true = 1 < 2;
	int false = 1 > 2;
	printf("%d %d", true, false);//输出结果为"1 0"

        由上面的示例可以看出,"1<2"为真,所以返回1存入变量true;"1>2"为假,所以返回0存入变量false。

        另外,C语句中=号表示赋值,==才表示判断,很多同学在这里稍不注意就会出问题,所以当判断变量与常量是否相等时,可以将常量写在前面


int a=1;
if(a=5)
    printf("好好学习\n");//输出"好好学习"
if(a==5)
    printf("天天向上\n");//不输出

//建议使用if(5==a)

         如上面示例如果a=5是将5赋值给a,结果5为非零则返回1,输出"好好学习";    a==5为假则返回0,不执行下一条语句

        而如果写作5==a,当我们不小心少打一个=号时程序会报错,这是因为5为常量,不能将变量a的值赋给5,这样也方便之后更快地找到错误

3.悬空else

        如果有多个else和if时,else总是跟最近的if匹配

#include<stdio.h>
int main()
{
    int b = 2;
    int a = 1;
    if(1==b)
        if(1==a)
            printf("学习");
    else
        printf("天天")
    //最终结果为不输出任何值
    return 0;
}

        上面示例中,else if(1==a)匹配,当程序运行时,先判断if(1==b)为假,后面的if(1==b)else作为一个整体都不执行,故结果为不输出任何值



二.switch语句

1.switch的使用方法

        

switch(整形)
{
    case 整形常量表达式:
        语句;
        break;
    case 整形常量表达式:
        语句;
        break;
//......
    default:
        语句;
        break;
}

2.switch使用时的注意事项

        case后接的必须接整型常量表达式

int a = 1;
case 1://正确
case 1+2://正确
case a://错误
case 3.14://错误

        casedefault的末尾加的是冒号,不是分号

case 1://正确
case 1;//错误

3.switch中break的使用

        

#include<stdio.h>
int main()
{
	int a = 2;
	switch (a)
	{
	case 1:
		printf("一");
	case 2:
		printf("二");
	case 3:
		printf("三");
	case 4:
		printf("四");
	case 5:
		printf("五");
	case 6:
		printf("六");
	case 7:
		printf("七");
	}
	return 0;
}//输出结果为"二三四五六七"

        上面例子中我们想只输出"二",结果却输出了"二三四五六七",这是为什么呢?

        原来,case只决定执行switch语句的入口,如果没有break,程序会从case开始一直往后执行下去。下面是修改后的示例

#include<stdio.h>
int main()
{
	int a = 2;
	switch (a)
	{
	case 1:
		printf("一");
        break;
	case 2:
		printf("二");
        break;
	case 3:
		printf("三");
        break;
	case 4:
		printf("四");
        break;
	case 5:
		printf("五");
        break;
	case 6:
		printf("六");
        break;
	case 7:
		printf("七");
        break;
    }
	return 0;//输出结果为"二"
}

4.switch中default的使用

        default可以作为switch语句的一道保险,用于执行所有无法与case匹配的值

#include<stdio.h>
int main()
{
	int a;
    scanf("%d",&a);//输入任意非1~7的整形
	switch (a)
	{
	case 1:
		printf("一");
        break;
	case 2:
		printf("二");
        break;
	case 3:
		printf("三");
        break;
	case 4:
		printf("四");
        break;
	case 5:
		printf("五");
        break;
	case 6:
		printf("六");
        break;
	case 7:
		printf("七");
        break;
    default:
        printf("输入错误");
    }
	return 0;//输出结果为"输入错误"
}

        建议在每一个switch语句中都加入default,这样可以降低程序出bug的几率

最后,感谢大家观看!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值