为了账号安全,请及时绑定邮箱和手机立即绑定

在switch语句中使用char数据

在switch语句中使用char数据

郎朗坤 2021-04-09 14:15:23
我试图获得一个case语句,以使用从字符串中提取的char数据将整数添加到整数数组中。int x = SString.length() - 1;int[] values = new int[x + 1];for (int i = 0; i <= x; i++) {    System.out.println(keyword.charAt(i));    switch (SString.charAt(i)) {        case 'a':            values[i] = 0;        case 'b':            values[i] = 1;        case 'c':            values[i] = 2;            System.out.println(values[i]);    }}我对when的预期输出SString = abc是values = {0,1,2}。相反,values = {2,2,2}。
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

您忘记了break语句,而System.out应该在switch语句之外。


    String SString = "abc";

    int x = SString.length() - 1;

    int[] values = new int[x + 1];

    for (int i = 0; i <= x; i++) {

        switch (SString.charAt(i)) {

            case 'a':

                values[i] = 0;

                break;

            case 'b':

                values[i] = 1;

                break;

            case 'c':

                values[i] = 2;

                break;

            default:

                break;

        }

        System.out.print(values[i] + " ");

    }

输出:0 1 2


查看完整回答
反对 回复 2021-04-14
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您忘记了每个案例陈述中的中断,因此所有案例都失败了,最终都以 values[i] = 2;


switch(SString.charAt(i)){

  case 'a':

    values[i] = 0;

    break; // this one for each

  case 'b':

    ...


查看完整回答
反对 回复 2021-04-14
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

你忘了break声明。


switch (SString.charAt(i)) {

case 'a':

    values[i] = 0;

    break;

case 'b':

    values[i] = 1;

    break;

case 'c':

    values[i] = 2;  

    break;

}


查看完整回答
反对 回复 2021-04-14
  • 3 回答
  • 0 关注
  • 466 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信