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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 从┧靇┟开始 中级黑马   /  2014-5-22 11:27  /  1152 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 从┧靇┟开始 于 2014-5-22 19:09 编辑

刚看到类 自己练习了一段小程序,求一个能打印出Apple电脑的方法,或者告诉我枚举占位符到底是什么? 小弟谢啦!

  1. #import <Foundation/Foundation.h>

  2. typedef enum{
  3.     AppleComputer,
  4.     DellComputer,
  5.     LenovoComputer
  6. } ComputerBand;

  7. typedef struct{
  8.     int year;
  9.     int month;
  10.     int day;
  11. } ExpireDate;

  12. @interface Computer : NSObject
  13. {
  14.     @public
  15.     ComputerBand band;
  16.     ExpireDate expireDate;
  17. }

  18. - (void)open;
  19. - (void)close;

  20. @end

  21. @implementation Computer

  22. - (void)open
  23. {
  24.     NSLog(@"选择打开电脑的品牌是%d", band);  //  能不能不要输出0,1,2  直接输出电脑名称
  25. }
  26. - (void)close
  27. {
  28.     NSLog(@"关闭显示日期为 %d年 %d月 %d日 的电脑", expireDate.year, expireDate.month, expireDate.day);
  29. }

  30. @end

  31. int main()
  32. {
  33.     Computer *c1 = [Computer new];
  34.    
  35.     c1->band = AppleComputer;
  36.    
  37.     Computer *c2 = [Computer new];
  38.    
  39.     c2->expireDate.year = 1900;
  40.     c2->expireDate.month = 9;
  41.     c2->expireDate.day = 9;
  42.    
  43.    
  44.     [c1 open];
  45.    
  46.     [c2 close];
  47.    
  48.     return 0;
  49. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

4 个回复

倒序浏览
枚举类型的本质是一些整形数据的集合,例如,你的枚举类型applcomputer被默认赋值为0,只是设定了范围并且设置了方便分辨的名称,是不能直接打印出代替的那些本质整形数据代号的。
你还不如直接把变量直接设置为字符串类型或者通过if语句等通过相应的枚举数字答应相应对应的字符
回复 使用道具 举报
楼主好,楼主这种想法是好的,但是C、C++是没有这种直接打印的办法的,如果想打印apple conputer 需要自己做映射,就如楼上所说的“你还不如直接把变量直接设置为字符串类型或者通过if语句等通过相应的枚举数字答应相应对应的字符”
可以将代码做如下修改:
  1. - (void)open
  2. {
  3.         if(self->band==0)
  4.         {
  5.                 NSLog(@"选择打开电脑的品牌是AppleComputer");
  6.         }
  7.         if(self->band==1)
  8.         {
  9.                 NSLog(@"选择打开电脑的品牌是DellComputer");
  10.         }
  11.      
  12. }
复制代码
回复 使用道具 举报
S捭K阖Y 发表于 2014-5-22 12:22
枚举类型的本质是一些整形数据的集合,例如,你的枚举类型applcomputer被默认赋值为0,只是设定了范围并且 ...

明白了  谢啦
回复 使用道具 举报
huangqiwa 发表于 2014-5-22 16:03
楼主好,楼主这种想法是好的,但是C、C++是没有这种直接打印的办法的,如果想打印apple conputer 需要自己 ...

清楚 枚举了 谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马