gpt4 book ai didi

java - 从方法返回字符

转载 作者:行者123 更新时间:2023-12-01 17:46:46 25 4
gpt4 key购买 nike

classify() 方法的条件仅返回字符 'F' 。如何使用 if 条件更改返回字符。例如,如果周净工资为 2500,则应返回“C”。

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in);
System.out.print("Enter Name: ");
String name=sc.nextLine();

System.out.print("Enter Weekly Gross: ");
double gross= sc.nextDouble();
double gross1=netWeekly(gross);
char classy=classify(gross1);
double bonus = gross*0.085;
System.out.println();
System.out.println();
System.out.println();

System.out.println("*****SNOW ENTERPRISES*****");
System.out.println("Employee Name: "+name);
System.out.println("Gross Salary: "+gross);
System.out.println("Bonus: "+bonus);
System.out.println("Net Weekly Salary: "+gross1);
System.out.println("Classification: "+classy);
}
public static double netWeekly(double a){
double net=0;
net = a/4.5;
return net;
}
public static char classify(double net){
double crah=netWeekly(net);

char letter='F';
if(crah>1500&&crah<1999)
letter = 'A';

else if(crah>2000&&crah<2499)
letter = 'B';
else if(crah>2500&&crah<2999)
letter = 'C';
else if(crah>3000&&crah<3499)
letter = 'D';
else if(crah>3500&&crah<3999)
letter = 'E';
else if(crah>4000)
return letter = 'F';

return letter;
}

}

最佳答案

您的条件均不与值 2500 完全匹配。

更改:

else if(crah>2500&&crah<2999)

else if(crah>=2500&&crah<3000)

(其他地方也类似)

<小时/>

oleg.cherednik's使用 Map 的建议可能有效,但我建议另一种实现:数字的划分仅有效,因为垃圾箱大小相等,并且从对齐的边界开始;使其适应不同的边界会很尴尬。

另一种方法是使用 NavigableMap,它具有 floorEntry 方法来获取下一个最小的条目。例如,您可以使用 TreeMap:

private static final NavigableMap<Double, Character> MAP;

static {
Map<Double, Character> map = new HashMap<>();
// Handles everything less than 1500.
map.put(Double.NEGATIVE_INFINITY, 'F');
map.put(1500.0, 'A');
map.put(2000.0, 'B');
map.put(2500.0, 'C');
map.put(3000.0, 'D');
map.put(3500.0, 'E');
map.put(4000.0, 'F');
MAP = Collections.unmodifiableNavigableMap(map);
}

然后:

public static char classify(double net) {
return MAP.floorEntry(netWeekly(net)).getValue();
}

关于java - 从方法返回字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54309561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com