所以这里我有一长串 if 语句,应该检测int[] anArray;
是在一定范围内的。anArray = new int[15];
的价值观int[] anArray;
, 从...开始anArray[0]
是:
49 50 51 59 0 5 9 10 15 19 50 55 89 99 100
这是确定给定值是否在某个范围内的代码部分:
int[] counterarray = new int[10];
for (x = 14; x >= 0; x--)
{
System.out.println(anArray[x]);
if (anArray[x] >= 0 && anArray[x] < 10)
{
counterarray[0] = counterarray[0] + 1;
}
if (anArray[x] >= 10 && anArray[x] < 20)
{
counterarray[1] = counterarray[1] + 1;
}
if (anArray[x] >= 20 && anArray[x] < 30)
{
counterarray[2] = counterarray[2] + 1;
}
if (anArray[x] >= 30 && anArray[x] < 40)
{
counterarray[3] = counterarray[3] + 1;
}
if (anArray[x] >= 40 && anArray[x] < 50)
{
counterarray[4] = counterarray[4] + 1;
}
if (anArray[x] >= 50 && anArray[x] < 60)
{
counterarray[5] = counterarray[5] + 1;
}
if (anArray[x] >= 60 && anArray[x] < 70)
{
counterarray[6] = counterarray[6] + 1;
}
if (anArray[x] >= 70 && anArray[x] < 80)
{
counterarray[7] = counterarray[7] + 1;
}
if (anArray[x] >= 80 && anArray[x] < 90)
{
counterarray[8] = counterarray[8] + 1;
}
if (anArray[x] >= 90 && anArray[x] < 101)
{
counterarray[9] = counterarray[9] + 1;
}
}
System.out.println("counterarray[0] is " +counterarray[0]);
System.out.println("counterarray[1] is " +counterarray[1]);
System.out.println("counterarray[2] is " +counterarray[2]);
System.out.println("counterarray[3] is " +counterarray[3]);
System.out.println("counterarray[4] is " +counterarray[4]);
System.out.println("counterarray[5] is " +counterarray[5]);
System.out.println("counterarray[6] is " +counterarray[6]);
System.out.println("counterarray[7] is " +counterarray[7]);
System.out.println("counterarray[8] is " +counterarray[8]);
System.out.println("counterarray[9] is " +counterarray[9]);
是的,这就是代码,但是一长串 if 语句似乎有点多余。 for 循环遍历每个数组值并确定它们属于哪个范围。然后int[] counterarray
将值的数量加在一起。那么,如何使一长串 if 语句更美观呢?
int[] counterarray = new int[10];
for (x = 14; x >= 0; x--)
{
if (anArray[x] >= 0 && anArray[x] < 101) {
int idx = Math.min(anArray[x] / 10, 9);
++counterarray[idx];
}
}
如果所有范围都是 10 的倍数(例如 0-9、10-19、20-29 等),那么我们只需简单除以 10 即可得到索引counterarray
. The Math.min
部分是处理(原始)范围为 90-100 的奇数最后一个情况;在 100 的情况下,idx 将等于 10,但是Math.min
限制它,这样它就不会成为数组中的越界索引。
The if
检查的目的是确保我们只查看预期范围内的值(在本例中为 0-100)。否则,我们可能会错误地增加最后一个桶的大值(例如 200)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)