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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Nemo 中级黑马   /  2015-7-9 21:50  /  773 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static byte f(byte b1,byte b2)
        {
                //return (byte)(b1-b2);
                //return b1-b2;
                //return (byte)b1+b2;
                //return (byte)b1/b2;
        }

请问哪一句return可以编译通过,哪些不可以,原因是啥???

4 个回复

倒序浏览
第一句可以编译通过,其余三句都不能编译通过。
回复 使用道具 举报
因为两个byte类型数据运算过程中会自动提升为int类型数据,运算结果也是int类型,而方法需要byte类型的返回值,所以要把结果强制转换。只有第一句符合,其余三句都不符合。
回复 使用道具 举报
这问题问的好 我还真没注意~~
回复 使用道具 举报
longbao 发表于 2015-7-9 22:11
因为两个byte类型数据运算过程中会自动提升为int类型数据,运算结果也是int类型,而方法需要byte类型的返回 ...

哪几个类型运算会被提升?分别被提升成什么类型呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马