A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© tianlin 中级黑马   /  2015-3-10 20:53  /  5851 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
enum season
    {
        spring,
        summer,
        autumn,
        winter,
    };
    enum season s = summer;
能不能直接输出“summer”

最佳答案

查看完整内容

枚举类型由一组命名的常数组成,所以说他实际上是常数,系统根据Integer、Long、Short或Byte中的任意一种数据类型来创建它,如果想输出枚举名字,只能采用这种形式: 也就是说,只能先将它转变为字符串再进行输出。 你可以专门定义一个函数类似 const char*get_season_name(enum season s),来专门获取枚举值对应的字符串,实际开发中,需要输出调试log时,一般也是这么做的。 ...

8 个回复

倒序浏览
枚举类型由一组命名的常数组成,所以说他实际上是常数,系统根据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时,一般也是这么做的。
回复 使用道具 举报
这是java么?java枚举跟好像跟迭代器一样,迭代输出,没办法指定输出
回复 使用道具 举报
枚举元素本身由系统定义了一个表示序号的值,你可以强制类型转换一下吧,然后再输出。
回复 使用道具 举报
一定要给我奖励啊,我回答出来了
回复 使用道具 举报
可以加个判断语句,根据其值输出相应的字符串
回复 使用道具 举报
wde34 初级黑马 2015-3-11 08:11:30
7#
  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. }
复制代码

回复 使用道具 举报
兄弟,不只我的答案满意否,分给我吧:D
回复 使用道具 举报
看过  学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马