初学Java 有个小问题,求教大神解答

2024-11-29 21:05:22
推荐回答(5个)
回答1:

问题在于你swtich中的数值是什么?我打印了一下,你是原样输出,那你case用1,2,3,4肯定是没有数值的,所以肯定执行的是

default:

            System.out.println("输入错误");

            break;

给你做了修改,你自己看下

public class Snippet {
    public static void main(String[] args){
        System.out.println("请输入您的基本工资: ");
        Scanner input = new Scanner(System.in);
        double money = input.nextDouble();
        System.out.println("请输入您的级别: A、B、C、D");
        char no = input.next().charAt(0);
        switch (no) {
        case 'A':
            System.out.println("您的工资总额为:"+(money+money*0.5));
            break;
        case 'B':
            System.out.println("您的工资总额为: "+(money+money*0.4));
            break;
        case 'C':
            System.out.println("您的工资总额为: "+(money+money*0.3));
            break;
        case 'D':
            System.out.println("您的工资总额为: "+(money+money*0.2));
            break;
        default:
            System.out.println("输入错误");
            break;
        }
//        我输入ABCD的时候,不能转换到相应的case中,总是转到最后一个“输入错误”里。。。请大神指导我错在哪里。。
    }
}

输出结果为:

请输入您的基本工资:
1222
请输入您的级别: A、B、C、D
A
您的工资总额为:1833.0

回答2:

package com.zaifu;
import java.util.Scanner;
public class DD
{
public static void main(String[] args)
{
System.out.println("请输入您的基本工资: ");
Scanner input = new Scanner(System.in);
double money = input.nextDouble();
System.out.println("请输入您的级别: A 、B、C、D");
char no = input.next().charAt(0);
switch (no)
{
case 'A':
System.out.println("您的工资总额为:" + (money + money * 0.5));
break;
case 'B':
System.out.println("您的工资总额为: " + (money + money * 0.4));
break;
case 'C':
System.out.println("您的工资总额为: " + (money + money * 0.3));
break;
case 'D':
System.out.println("您的工资总额为: " + (money + money * 0.2));
default:
System.out.println("输入错误");
break;
}
}
}

回答3:

switch(no)这里面只能使用整数类型的值,也就是int类型、你可以在你的代码里再添加一个if判断将ABCD对应成1234就可以了

回答4:

把你case后面的1、2、3、4换成A、B、C、D。

回答5:

case 'A' ,case 'B' 试一下