为什么会有枚举类型

本文展示了如何在C程序中使用枚举类型(enum)和const常量来增强代码的可读性和效率。枚举用于表示一组相关的整型常量,而const常量则用于声明不可更改的变量。通过将星期几映射到整数值,并用枚举表示,简化了switch-case语句,提高了代码的清晰度。示例代码中,我们定义了一个枚举类型WEEK,并展示了如何根据枚举值输出相应的星期名称。
摘要由CSDN通过智能技术生成
#include <stdio.h>

typedef int Day;
//变量,虽然是const类型变量,但也是变量
//switch case要求的是常量
const Day Monday = 1;
const Day Tuesday = 2;
const Day Wednesday = 3;
const Day Thursday = 4;
const Day Friday = 5;
const Day Saturday = 6;
const Day Sunday = 7;

const char* week[7] = { "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday" };

void Everyday(Day day) {
	if (day == Monday)printf("Today is %s", week[day - 1]);
	if (day == Tuesday)printf("Today is %s", week[day - 1]);
	if (day == Wednesday)printf("Today is %s", week[day - 1]);
	if (day == Thursday)printf("Today is %s", week[day - 1]);
	if (day == Friday)printf("Today is %s", week[day - 1]);
	if (day == Saturday)printf("Today is %s", week[day - 1]);
	if (day == Sunday)printf("Today is %s", week[day - 1]);
}

int main(int argc, char* argv) {

	Day i = 1;
	//scanf_s("%d", &i);
	Everyday(1);

	return 0;
}

#include <stdio.h>
//定义枚举类型的主要目的是:增加程序的可读性。
//枚举类型最常见也最有意义的用处之一就是用来描述状态量,这点将在第9章 输入输出流类看到。
//里面的每个元素都是整数常量,默认是从0开始,但是可以指定开始起始数字,Monday=1
enum WEEK { 
	Monday=1,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday 
};
//枚举值是常量不是变量,不能在程序中再为枚举元素赋值。
const char* week[7] = { "Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday" };

int main(int argc, char* argv) {

//	printf("%d", Monday);
	enum WEEK day;
/*	printf("枚举类型所占字节数:%d", sizeof(day));
* 就是1个int的字节数大小
 */
	printf("Monday %d, Tuesday %d, Wednesday %d, Thursday %d, Friday %d, Saturday %d, Sunday %d", Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);
	day = Tuesday;
//枚举变量的值只能取枚举常量表中所列的值,就是整型数的一个子集。


	scanf_s("%d",&day);

	switch (day) {
	case Monday:
		printf("%s", week[day - 1]);
		break;
	case Tuesday:
		printf("%s", week[day - 1]);
		break;
	case Wednesday:
		printf("%s", week[day - 1]);
		break;
	case Thursday:
		printf("%s", week[day - 1]);
		break;
	case Friday:
		printf("%s", week[day - 1]);
		break;
	case Saturday:
		printf("%s", week[day - 1]);
		break;
	case Sunday:
		printf("%s", week[day]);
		break;
	default:
		break;
	}

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值