为什么在switch(ch+1)中ch+1的值是'9'而我用println(ch+1);输出的时候是57呢?
package com.imooc;
import java.util.Scanner;
public class 测试 {
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.println(r);
}
}
为什么在switch(ch+1)中ch+1的值是'9'而我用println(ch+1);输出的时候是57呢?
15
收起
正在回答
2回答
同学你好,ch + 1:Java底层会先使用‘8’转换对应的ASCII码十进制的值进行加法运算,‘8’对应ASCII为56,56+1会得到57对应值。比如

2、57的对应值就是字符'9'。所以在switch中就会得到9的值。
祝学习愉快~
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星