为什么在switch(ch+1)中ch+1的值是'9'而我用println(ch+1);输出的时候是57呢?

为什么在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呢?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,ch + 1:Java底层会先使用‘8’转换对应的ASCII码十进制的值进行加法运算,‘8’对应ASCII为56,56+1会得到57对应值。比如

http://img1.sycdn.imooc.com//climg/610fac1e095c9e6811130726.jpg

    ​2、57的对应值就是字符'9'。所以在switch中就会得到9的值。

祝学习愉快~

好帮手慕小班 2021-08-08 15:51:04

同学你好,这是因为ch + 1:Java底层会先使用‘8’转换对应的ASCII码十进制的值进行加法运算,‘8’对应ASCII为56,56+1会得到57的对应值。

祝学习愉快~

  • 提问者 浩淼6924806 #1

    我主要是想问为啥在switch()里面会等于'9'呢?

    2021-08-08 16:57:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师