我的用户积分根据各种方式获得,这里不管,数据库中只存储了一个总积分。
现新加一数据库表:结构如下
一级  100
二级  200
三级  500
四级  700
注:各级之间的分差是没有规律的(由管理员动态的设置),现在希望使用用户的积分(如我的积分为300)获得我的等级(应该是二级)。请不要使用SQL语句实现,直接用程序的算法实现或讲一下方法,谢谢。

解决方案 »

  1.   

    int a;
    int b;
    setA;
    setB;
    if(value<a) {}
    if(a<value&&value<b) {}
      

  2.   

    如果不只是a,b,c,而是有100个等级结构呢?楼上朋友这样好像有问题哦。
      

  3.   

    一级  100
    二级  200
    三级  500
    四级  700每一行是一个Grade对象,然后使用List存储全部的
    int userScore = x;
    String grade = null;
    for(int i = 0; i < list.size() && list.get(i).getScore() < userScore; i++)
      grade = list.get(i).getGrade();
      

  4.   

    假设积分等级表有“等级名”,“等级起始分数”在积分等级表找出等级起始分数<=用户积分的记录并按分数排倒序,然后取出第一条记录的等级名就OK了。
      

  5.   

    假设积分等级表有“等级名”,“等级起始分数”两个字段在积分等级表找出“等级起始分数”<=“用户积分”的记录并按“等级起始分数”排倒序,然后取出第一条记录的“等级名”就OK了。
      

  6.   

    select top 1 等级名 from 积分等级表 where 等级起始分数<用户积分 order by 等级起始分数 DESC
      

  7.   

    我是有个办法,将积分对等级分别取模和取余,并将其值求和,将和进行比较,最小值对应的就为用户等级,不知有没有其他简单的办法,这个太麻烦了。
    现在要出去,刚看到ChDw(米) ( 三星(高级)) 的方法,回来试试。
    楼上Rayuu() 朋友使用了SQL,不符合要求,不过谢谢。
      

  8.   

    嗯,ChDw(米) 的方法需要在每次更改等级结构时对list进行排序,不过也挺方便的。不需要乱计算了。