黑马程序员技术交流社区

标题: 如何输出枚举类型的内容? [打印本页]

作者: tianlin    时间: 2015-3-10 20:53
标题: 如何输出枚举类型的内容?
enum season
    {
        spring,
        summer,
        autumn,
        winter,
    };
    enum season s = summer;
能不能直接输出“summer”


作者: BeNotJustCoder    时间: 2015-3-10 20:53
枚举类型由一组命名的常数组成,所以说他实际上是常数,系统根据Integer、Long、Short或Byte中的任意一种数据类型来创建它,如果想输出枚举名字,只能采用这种形式:
  1. switch(s)
  2. case spring:
  3.         puts("spring");break;
  4. case summer:
  5.         puts("summer");break;
  6. ...
复制代码

也就是说,只能先将它转变为字符串再进行输出。
你可以专门定义一个函数类似 const char*get_season_name(enum season s),来专门获取枚举值对应的字符串,实际开发中,需要输出调试log时,一般也是这么做的。
作者: 林吉前    时间: 2015-3-10 22:24
这是java么?java枚举跟好像跟迭代器一样,迭代输出,没办法指定输出
作者: Grady    时间: 2015-3-10 22:48
枚举元素本身由系统定义了一个表示序号的值,你可以强制类型转换一下吧,然后再输出。
作者: Grady    时间: 2015-3-10 23:06
一定要给我奖励啊,我回答出来了
作者: 粘糊浆    时间: 2015-3-10 23:54
可以加个判断语句,根据其值输出相应的字符串
作者: wde34    时间: 2015-3-11 08:11
  1. enum season
  2. {
  3.     spring,
  4.     summer,
  5.     autumn,
  6.     winter,
  7. };
  8. public class Test {
  9.         public static void main(String[] args) {
  10.                
  11.                 for (season s : season.values()) {
  12.                         System.out.println(s+":"+s.name());
  13.                 }
  14.         }
  15. }
复制代码


作者: BeNotJustCoder    时间: 2015-3-11 09:26
兄弟,不只我的答案满意否,分给我吧:D
作者: 碧空海    时间: 2015-3-13 13:28
看过  学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2