明解C语言入门篇第三章 3-2 switch语句

知识点总结:

1.switch语句使用优势:通过某一单一表达式的值,将程序分为多个分支时,使用switch语句会使程序更加简洁。

通过单一表达式来控制程序流程分支时,switch语句通常比if语句使用效果更好。

2.switch语句括号内的控制表达式必须是整数类型。

3.case:  case是标签,格式为:"case 1 : "  ,是用来表示程序跳转的标识,标签的值必须为常量,不能为变量。

4.break语句:执行break语句时,程序会在当前语句范围运行结束。

5.default:当控制表达式的判断结果与任何1个case都不一致时,程序会跳转到default继续执行。(类似在"if-else"语句中程序不满足if语句控制表达式条件,跳转到else语句继续执行)

分类题型:

题型1:显示输入整数除以3的余数

两种方法:if语句和switch语句

代码3-18,代码3-19

int main()
{
	//代码3-18,3-19
	int no;
	printf("请输入1个整数: "), scanf("%d", &no);
	//if语句写法
	if (no % 3 == 0)  puts("该数能被3整除");
	else if (no % 3 == 1)  puts("该数除以3的余数是1");
	else puts("该数除以3的余数是2");
	
	//switch语句写法
	switch (no % 3) {
	case 0: puts("该数能被3整除"); break;
	case 1: puts("该数除以3的余数是1"); break;
	case 2: puts("该数除以3的余数是2"); break;
	}

	return 0;
}

题型2:写出数字对应英文选项

代码3-20

int main()
{
	int sw;
	printf("整数 : "), scanf("%d", &sw);

	switch (sw){
		case 1:puts("A");
	puts("B"); break;
		case 2:puts("C");
		case 5:puts("D"); break;
		case 6:puts("E"); break;
        default:puts("F"); break;
}
	return 0;
}

题型3:输出某数字对应的数字

书P74截取代码段

//书中截取代码段
int main()
{
	int p, c;
	scanf("%d", &p);

    //if语句形式
	if (p == 1) c = 3;
	if (p == 2) c = 5;
	if (p == 3) c = 7;
	if (p == 4) c = 9;
	printf("%d", c);

	//switch语句改写
	switch (p){
		case 1:c = 3; break;
		case 2:c = 5; break;
		case 3:c = 7; break;
		case 4 :c = 9; break;//或default :if(p==4) c=9;
	}
	printf("%d", c);
	return 0;
}

题型4:用switch语句判断输入整数的奇偶性

练习3-12(修改代码3-4)

//练习3-12

//练习3—12   3—4作修改
int main() {
int no;
printf("请输入1个整数");
scanf("%d", &no );
switch (no % 2) {
case 0:puts("该整数是偶数"); break;
case 1:puts("该整数是奇数"); break;
}
return 0 ;
}

题型5:用switch语句实现显示输入的月份所处的季节

练习3-13(修改代码3-17)

//&3—13     3—17作修改
int main()
{
    int month;
    printf("请输入月份");
    scanf("%d", &month);
    //方法1:全写出来
    switch (month) {
    case 1:puts("1月是冬天"); break;
    case 2:puts("2月是冬天"); break;
    case 3:puts("3月是春天"); break;
    case 4:puts("4月是春天"); break;
    case 5:puts("5月是春天"); break;
    case 6:puts("6月是夏天"); break;
    case 7:puts("7月是夏天"); break;
    case 8:puts("8月是夏天"); break;
    case 9:puts("9月是秋天"); break;
    case 10:puts("10月是秋天"); break;
    case 11:puts("11月是秋天"); break;
    case 12:puts("12月是冬天"); break;
    }

    //方法2:
    switch (month) {
    case 1:
    case 2:printf("%d月是冬天", month);break;
    case 3:
    case 4:
    case 5:printf("%d月是春天", month); break;
    case 6:
    case 7:
    case 8:printf("%d月是夏天", month); break;
    case 9:
    case 10:
    case 11:printf("%d月是秋天", month); break;
    case 12:printf("%d月是冬天", month); break;
    }
    return 0;
}

注意:case后只能有1个标签值!

本题型代码错误示例:运行该代码会报错显示case标签值已经出现在此开关 !

//case后只能有1个标签值!
switch (month) {
case 1 || 2 || 12:printf("%d月是冬天", month); break;
case 3 || 4 || 5:printf("%d月是春天", month); break;
case 6 || 7 || 8:printf("%d月是夏天", month); break;
case 9 || 10 || 11:printf("%d月是秋天", month); break;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值