输出结果为什么是B,该怎么处理

输出结果为什么是B

public class Test04 {
public static void main(String[] args){
char ch1 = 'A';
char ch2 = 'W';
if(ch1 + 2 < ch2){
++ch1;
}
System.out.println(ch1);
}
}


请问这个程序的输出结果为什么是B
谢谢~
------解决思路----------------------
每个字符都对应一个ASCII值,'A'字符对应的ASCII值是65,'B'字符对应的ASCII值是66,你程序中的char ch1 = 65进行了++运算之后值变成66,对应的字符就是‘B’。
------解决思路----------------------
++ch1先自增,后赋值给自身
ch1=ch1+1,ch1=ch1.
单独使用ch1++与++ch1效果一样
所以if(ch1 + 2 < ch2){
            ++ch1;
        }
        System.out.println(ch1);
等同于
if(ch1 + 2 < ch2){
            ch1=ch1+1;
        }
        System.out.println(ch1);
原来的ch1='A',因为是char类型,加一过后ch1='B',所以由System.out.println(ch1);输出的值为B。
------解决思路----------------------
每个字符都对应一个ASCII值,'A'字符对应的ASCII值是65,'B'字符对应的ASCII值是66,你程序中的char ch1 = 65进行了++运算之后值变成66,对应的字符就是‘B’,又因为ch1是char类型的所以输出的就是B
------解决思路----------------------
if(ch1 + 2 < ch2){
            ++ch1;
        }

ch1+2<ch2,结果是true。
++ch1,ch1自加1,也就是B。

应该很简单,你是想知道怎么输出66么?
------解决思路----------------------
楼主查一下ASCII码表,看一下,以后对类似问题就都清楚了。
------解决思路----------------------
引用:
怎么输出为66的这个我清楚的 
主要困惑在ch1 + 2 上
谢谢你哦。。
嗯,加油!
------解决思路----------------------
感觉不要解释了把……