(0) 问题介绍
商家下面有很多会员等级,等级的评定是根据用户的积分来决定的,假设等级信息如下
等级:0 1 2 3
积分:20 100 210 350
会员A的积分为:300,小于最低等级为最低等级,大于最高等级为最高等级,其他的,大于等于等级积分才是当前等级。
会员A的等级应为2,现在写一个程序来解决这个问题。
(1)复杂的实现
public static void main(String[] args)
{
ArrayList<Integer> sortList = new ArrayList<Integer>()
{
{
add(20);
add(100);
add(210);
add(350);
}
};
Integer value = 300,
size = sortList.size(),
level = 0;
boolean flag =false;
for(int i=0;i<size;i++)
{
if(sortList.get(i) > value)
{
if(i == 0)//小于最低等级的情况
{
level = 0;
}
else
{
level = i-1;
}
flag = true;
break;
}
}
if(!flag)//大于最大等级的情况
{
level = size - 1;
}
System.out.println("他的等级是:"+level);
}
(2)简单的实现
public static void main(String[] args)
{
ArrayList<Integer> sortList = new ArrayList<Integer>()
{
{
add(20);
add(100);
add(210);
add(350);
}
};
Integer value = 300,
size = sortList.size(),
level = 0;
for(int i=1;i<size;i++)
{
if(sortList.get(i) <= value)
{
level = i;
}
else break;
}
System.out.println("他的等级是:"+level);
}
(3) 感触
有时候>和<=就代表了正向思维和逆向思维。

