double value =Double.valueOf(kscjgl.getZcj()).doubleValue();
double max = Double.valueOf(entity.getMax()).doubleValue();
double min =Double.valueOf(entity.getMin()).doubleValue();
if (value<=min&&value<=max){
cj=70;
}else if(value<=min&&value<=max){
cj=75;
}else if(value<=min&&value<max){
cj=80;
}else if (value>min&&value<=max){
cj=85;
}else if(value>max){
cj=95;
}
就是用 value 值判断在不在最大值,最小值范围
1
timedivision 2021-04-30 16:29:13 +08:00
直接判断 max 值,从上往下,就不用判断 min 了
|
2
Jwyt 2021-04-30 16:32:07 +08:00
为什么 value < min 了还要 < max , 写错了吧?
|
3
hxndg 2021-04-30 16:41:09 +08:00
value<=min&&value<=max 时 cj = 70;
value<=min&&value<=max 时 cj = 75 ; 我属实没看懂你写的是个啥东西? |
4
hxndg 2021-04-30 16:41:47 +08:00
如果你对两个条件做判断无非是个范围映射的功能。
|
5
catror 2021-04-30 16:50:40 +08:00
这写的啥,范围判断最多也就三种情况
|
6
xing7673 2021-04-30 16:59:00 +08:00 via iPhone
它这个是等于 min max 一种分数,但是总体而言就是学生作业
|
7
hemingyang OP 伪代码 这判断不知道怎么弄
|
8
dqzcwxb 2021-04-30 17:21:37 +08:00
用 TreeMap 或者 ConcurrentSkipListMap
|
9
hemingyang OP ```java
1 、425---440,期末考试英语成绩替换为 70 ; 2 、441---450,期末考试英语成绩替换为 75 ; 3 、451---470,期末考试英语成绩替换为 80 ; 4 、471---499,期末考试英语成绩替换为 85 ; 5 、500 分以上,期末考试英语成绩替换为 95 ; ``` 最小值 最大值是可变的 |
10
zxCoder 2021-04-30 17:50:42 +08:00
你确定这不是大一 C 语言课后题吗
ifelse 判断分数输出等级 |
11
hemingyang OP @zxCoder 没有思路呀!
|
12
dqzcwxb 2021-04-30 17:53:02 +08:00 1
|
13
dqzcwxb 2021-04-30 17:57:28 +08:00
解题思路:首先把 if else if 的递进判断修改为二分查找,然后二分查找自然就联想到 avl 二叉查找树,那么接下来就是红黑树,红黑树在 java 中的对应结构就是 TreeMap,解题完毕
|
14
BiteTheDust 2021-04-30 17:57:46 +08:00
@dqzcwxb 意思是大家都要未卜先知 先预测到楼主在 9 楼发的回复
|
15
dqzcwxb 2021-04-30 17:58:50 +08:00
@BiteTheDust #14 我在 8 楼就说了答案,从主贴完全可以知道他的需求是范围查找
|
16
chairuosen 2021-04-30 18:00:42 +08:00
把节点存数组里,循环
|
17
billlee 2021-04-30 20:44:18 +08:00
不需要动态修改的二分查找,数组二分法一般比红黑树快
|