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

梁珍珍

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 梁珍珍 初级黑马   /  2013-7-19 00:39  /  1089 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

以下代码哪个是正确的?为什么?
         *
         * a. byte b = 1 + 1;
         * b. byte b = 1; b = b + 1;
         * c. byte b = 1; b = b += 1;
         * d. byte b = 1; b = ++b;

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

2 个回复

倒序浏览
byte b = 1 + 1;   //可以  两个int 的加减, 隐式转换

byte b = 1; b = b+1; // 不可以  byte 与int 相加, 最后赋值给 byte ,  最后类型应该是被提升成int  需要强转..

byte b  = 1; b = b+=1;   // 可以  b+=1;  自动做了转换 是byte 类型;

byte b = 1; b = ++b;  // 可以 与上面b+=1 一样

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
可能是我理解的有问题吧- - ,
* a. byte b = 1 + 1;                1+1的结果是int。  =左边是byte  这个。 。 能行吗。?
* b. byte b = 1; b = b + 1;      这个肯定不对了, ,  道理一样,   =右边b+1  b自动提升成了int  但是返回去  回不去了
* c. byte b = 1; b = b += 1;    这个应该没问题  因为是一次运算 直接就得到结果了,  
* d. byte b = 1; b = ++b;        这个不太懂 。  感觉应该不行吧, ?    ++b  这个 是什么意思  自增吗。 ?  C语言里 行。  但是JAVA里 不是b++ 吗?

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马