V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hemingyang
V2EX  ›  问与答

这个判断怎么优化呢?大佬们

  •  
  •   hemingyang · 2021-04-30 16:24:19 +08:00 · 1552 次点击
    这是一个创建于 1328 天前的主题,其中的信息可能已经有所发展或是发生改变。
    
    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 值判断在不在最大值,最小值范围

    17 条回复    2021-04-30 20:44:18 +08:00
    timedivision
        1
    timedivision  
       2021-04-30 16:29:13 +08:00
    直接判断 max 值,从上往下,就不用判断 min 了
    Jwyt
        2
    Jwyt  
       2021-04-30 16:32:07 +08:00
    为什么 value < min 了还要 < max , 写错了吧?
    hxndg
        3
    hxndg  
       2021-04-30 16:41:09 +08:00
    value<=min&&value<=max 时 cj = 70;
    value<=min&&value<=max 时 cj = 75 ;

    我属实没看懂你写的是个啥东西?
    hxndg
        4
    hxndg  
       2021-04-30 16:41:47 +08:00
    如果你对两个条件做判断无非是个范围映射的功能。
    catror
        5
    catror  
       2021-04-30 16:50:40 +08:00
    这写的啥,范围判断最多也就三种情况
    xing7673
        6
    xing7673  
       2021-04-30 16:59:00 +08:00 via iPhone
    它这个是等于 min max 一种分数,但是总体而言就是学生作业
    hemingyang
        7
    hemingyang  
    OP
       2021-04-30 17:05:08 +08:00
    伪代码 这判断不知道怎么弄
    dqzcwxb
        8
    dqzcwxb  
       2021-04-30 17:21:37 +08:00
    用 TreeMap 或者 ConcurrentSkipListMap
    hemingyang
        9
    hemingyang  
    OP
       2021-04-30 17:26:12 +08:00
    ```java
    1 、425---440,期末考试英语成绩替换为 70 ;
    2 、441---450,期末考试英语成绩替换为 75 ;
    3 、451---470,期末考试英语成绩替换为 80 ;
    4 、471---499,期末考试英语成绩替换为 85 ;
    5 、500 分以上,期末考试英语成绩替换为 95 ;
    ```
    最小值 最大值是可变的
    zxCoder
        10
    zxCoder  
       2021-04-30 17:50:42 +08:00
    你确定这不是大一 C 语言课后题吗

    ifelse 判断分数输出等级
    hemingyang
        11
    hemingyang  
    OP
       2021-04-30 17:52:01 +08:00
    @zxCoder 没有思路呀!
    dqzcwxb
        12
    dqzcwxb  
       2021-04-30 17:53:02 +08:00   ❤️ 1
    这个问题很简单, 前面的人为什么不直接回答反而顾左右而言他?
    dqzcwxb
        13
    dqzcwxb  
       2021-04-30 17:57:28 +08:00
    解题思路:首先把 if else if 的递进判断修改为二分查找,然后二分查找自然就联想到 avl 二叉查找树,那么接下来就是红黑树,红黑树在 java 中的对应结构就是 TreeMap,解题完毕
    BiteTheDust
        14
    BiteTheDust  
       2021-04-30 17:57:46 +08:00
    @dqzcwxb 意思是大家都要未卜先知 先预测到楼主在 9 楼发的回复
    dqzcwxb
        15
    dqzcwxb  
       2021-04-30 17:58:50 +08:00
    @BiteTheDust #14 我在 8 楼就说了答案,从主贴完全可以知道他的需求是范围查找
    chairuosen
        16
    chairuosen  
       2021-04-30 18:00:42 +08:00
    把节点存数组里,循环
    billlee
        17
    billlee  
       2021-04-30 20:44:18 +08:00
    不需要动态修改的二分查找,数组二分法一般比红黑树快
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1132 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:20 · PVG 02:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.