枚举的基本使用

如果一个变量只可能是几种可能的值,则可以定义为枚举类型。枚举就是把所有的肯能的值一一列出来,变量的值只限于列举的范围内。
定义枚举类型的一般形式:enum [枚举名] {枚举元素列表}
例如:enum Months{jan=1,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec};
注:
1.默认按照枚举元素的顺序给他们赋值为0,1,2···,也可以自己再定义的时候进行赋值(如上例子)
2.C编译器对枚举元素按常量处理,故称枚举常量。因此在定义之后不能对他们进行赋值,所以不能从键盘上输入枚举变量的值, 不能直接将常量赋给枚举变量,(如:day=1非法)。
如何解决从键盘上输入枚举类型:
要想从键盘上输入枚举类型的变量,只能先输入一个一般类型的变量(一般是整型,因为枚举默认赋值为整型),然后再进行强制类型转换。

typedef enum{
	DG=1,DN,UDG,UDN
}GraphKind;//有向图,无向图,有向网,无向网
int main(){
	int c; 
	GraphKind kind;//枚举变量
	cout<<"输入图的类型"<<endl;
	cin>>c;
	kind=GraphKind(c);
	cout<<kind<<endl;
}
	
### 枚举概述 枚举是一种用于定义一组命名常量的数据类。通过使用枚举,程序员能够更清晰地表达代码意图并减少错误的发生概率。以下是关于枚举的详细介绍以及其在不同编程语言中的实现方式。 --- #### 仓颉编程语言中的枚举 在仓颉编程语言中,枚举不仅支持基本的定义功能,还提供了高级特性如泛和模式匹配的支持[^1]。这使得开发者能够在复杂的场景下构建更加健壮和可维护的程序逻辑。 下面是一个简单的枚举定义示例: ```rust // 定义一个名为 Color 的枚举 enum Color { Red, Green, Blue, } fn main() { let c = Color::Red; match c { Color::Red => println!("The color is red."), Color::Green => println!("The color is green."), Color::Blue => println!("The color is blue."), } } ``` 上述代码展示了如何利用 `match` 表达式对枚举值进行分支处理。这种设计风格有助于提升代码的可读性和灵活性。 --- #### MATLAB 中的枚举 MATLAB 提供了基于类系统的枚举机制,允许用户创建自定义的枚举集合。尽管早期版本可能需要借助脚本来完成定义过程[^2],但从较新的发行版起,这一操作变得更为直观。 以下是一段典的 MATLAB 枚举声明实例: ```matlab classdef DaysOfWeek < enumeration properties (Constant) Sunday; Monday; Tuesday; Wednesday; Thursday; Friday; Saturday; end end % 使用示例 day = DaysOfWeek.Monday; disp(day); if day == DaysOfWeek.Sunday || day == DaysOfWeek.Saturday disp('It''s a weekend!'); else disp('It''s a weekday.'); end ``` 此片段说明了如何在 MATLAB 环境里建立一周七天对应的枚举项,并演示了一个判断当前是否处于周末的小例子。 --- #### 枚举的优势与应用场景 - **增强语义化**:相比原始数值或者字符串表示状态或选项,枚举能赋予更强的意义关联。 - **编译期验证**:许多现代编译器会对非法赋值发出警告甚至阻止运行,从而降低潜在风险。 - **简化控制流**:配合模式匹配技术,可以使条件分支结构显得紧凑而优雅。 然而需要注意的是,在某些老旧平台或是特定领域(比如嵌入式开发),由于资源限制等原因可能会避免广泛采用此类抽象层次较高的概念。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值