问题在于你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
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;
}
}
}
switch(no)这里面只能使用整数类型的值,也就是int类型、你可以在你的代码里再添加一个if判断将ABCD对应成1234就可以了
把你case后面的1、2、3、4换成A、B、C、D。
case 'A' ,case 'B' 试一下