C语言中的switch

switch用来控制要执行哪些语句。

用法:

int data;
switch(data){
    case 1://当data等于1的时候执行语句A
        语句A;
    break;//如果这里的break删了,下面的一个case中的语句B也会执行
    case 2:
        语句B;
    break;
    case 3:
        语句C;
    break;
    case 4:
        语句D;
    break;
    default://其它情况的时候执行语句E
        语句E;
}

补充:

  1. 当某个语句适用于多个情况的时候可以这样写:

    int data;
    switch(data){
        case 1:
        case 2:
        case 3:
            语句A;//当data的值等于1、2、3的时候都会执行语句A
        break;
        case 4:
            语句B;
        break;
        case 5:
            语句C;
        break;
    }
    
  2. switch的小括号里面支持判断字符

    char c;
    switch(c){
        case 'a':
            语句A;
        break;
        case 'b':
            语句B;
        break;
        case 'c':
            语句C;
        break;
        case 'd':
            语句D;
        break;
        default:
            语句E;
    }
    
  3. switch小括号里面不支持float类型的数据

一些小例子

例一

输入学生的一个成绩,判断等级,85分以上为A,70至84为B,60至69为C,60以下为D

#include <stdio.h>
int main(void)
{
	int score;
	puts("请输入学生的成绩:");
	scanf("%d",&score);
	switch(score){
		case 85 ... 100://switch中用"..."表示范围,要注意这三个点前后要加空格
			puts("成绩等级为A");
		break;
		case 70 ... 84:
			puts("成绩等级为B");
		break;
		case 60 ... 69:
			puts("成绩等级为C");
		break;
		case 0 ... 59:
			puts("成绩等级为D");
		break;
		default:
			puts("成绩输入有误,请确认");
	}
	return 0;
}

例二

根据路程判断折扣:
s<250没有折扣,
250≤s<500有2%的折扣,
500≤s<1000有5%的折扣,
1000≤s<2000有8%的折扣,
2000≤s<3000有10%的折扣,
3000≤s有15%的折扣

#include <stdio.h>
#include <limits.h>//limits.h中定义了INT_MAX
int main(void)
{
	int s;
	puts("请输入路程(km):");
	scanf("%d",&s);
	switch(s){
		case 0 ... 249:
			puts("没有折扣");
		break;
		case 250 ... 499:
			puts("折扣为%2");
		break;
		case 500 ... 999:
			puts("折扣为%5");
		break;
		case 1000 ... 1999:
			puts("折扣为%8");
		break;
		case 2000 ... 2999:
			puts("折扣为%10");
		break;
		case 3000 ... INT_MAX:
			puts("折扣为%15");
		break;
		default:
			puts("输入有误,请确认");
	}
	//printf("%d",INT_MAX);//输出结果为:2147483647,因此本例中的路程最大只能输入到2147483647
	return 0;
}

本例中的“INT_MAX”不是标准的,其它编译器识别不了,用gcc编译器可识别这个INT_MAX,它属于语言扩展,定义在头文件limits.h中。
(此段文字参考来源:大于和小于SWITCH语句C

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值