黑马程序员技术交流社区
标题:
关于运算符的问题
[打印本页]
作者:
吴刚
时间:
2012-11-10 15:05
标题:
关于运算符的问题
本帖最后由 吴刚 于 2012-11-10 23:41 编辑
public static void main(String[] args) {
char c = 'A';
char b = 1;
char d = c+b;//错滴
int e = c+1;//错滴
int f = (int)c+1;//错滴
}
复制代码
知道改成char d = (char)c+b;就正确了,难道char和char进行运算也要进行强制类型转换?如果java内部进行强制类型转换的话,那么int e咋也错了,还有int f的运算,强转int类型也不行?谢谢热心人解答啦。。
作者:
葛旭东
时间:
2012-11-10 15:33
本帖最后由 葛旭东 于 2012-11-10 15:55 编辑
char d = c+b;是错的,两个char相加,类型自动提升为int,应该改成 char d = (char)(c+b)或者int d = c+b;
后面两个是正确的啊。
作者:
李长波
时间:
2012-11-10 15:50
c+b这个是算术运算符!算术运算符都是基于数据的运算,可以是浮点型,可以是整型,但不能用字符型想加!改成int d=(int)(c+b)就没错!其他的三个都没错!强制转化了!
作者:
葛旭东
时间:
2012-11-10 15:59
李长波 发表于 2012-11-10 15:50
c+b这个是算术运算符!算术运算符都是基于数据的运算,可以是浮点型,可以是整型,但不能用字符型想加!改 ...
int d = c+b就可以了,不必强转成int型
作者:
吴刚
时间:
2012-11-10 23:41
谢谢楼上几位,知道缘由了,是变量名定义重复啦。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2