黑马程序员技术交流社区

标题: 字符搞不懂,,求带! [打印本页]

作者: 坏坏坏男孩    时间: 2016-7-9 23:43
标题: 字符搞不懂,,求带!
class ssss {
        public static void main(String[] args) {
  char ch = '8';
  int r = 10;
  switch (ch + 1) {
    case '7':
      r = r + 3;
    case '8':
      r = r + 5;
    case '9':
      r = r + 6;
      break;
    default:
      r = r + 8;
        }
        System.out.print('8'+1);
}
}

在这个程序中'8'+1 为什么等于'9',但是单独运行'8'+1是等于57呢.....
作者: Ly丶Roman    时间: 2016-7-10 00:24
8 是char型 1电脑默认是int类型 相加的话 char型会自动提升为int类型 所以'8'+1  = 9
作者: 张作辉    时间: 2016-7-10 00:34
因DJK里有优化机,先运算后在执行
作者: 坏坏坏男孩    时间: 2016-7-10 20:11
Ly丶Roman 发表于 2016-7-10 00:24
8 是char型 1电脑默认是int类型 相加的话 char型会自动提升为int类型 所以'8'+1  = 9  ...

有道理   
作者: yuxing    时间: 2016-7-10 21:27
2楼正解...........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2