基本上,我有一个变量“prime”。它只能取 0 到 6 之间的值。根据它的值,如果素数为 0,我希望字符串“结果”为星期日,如果素数为 1,则为星期一,等等。目前,它是这样编码的:
String result = new String();
if (prime == 0)
{
result = "Sunday";
}
if (prime == 1)
{
result = "Monday";
}
if (prime == 2)
{
result = "Tuesday";
}
if (prime == 3)
{
result = "Wednesday";
}
if (prime == 4)
{
result = "Thursday";
}
if (prime == 5)
{
result = "Friday";
}
if (prime == 6)
{
result = "Saturday";
}
else
{
result = "Check your code.";
}
我想知道是否有更快的方法来做到这一点?我创建了一个包含星期几的数组:
String[] days = new String[7];
days [0] = "Sunday";
days [1] = "Monday";
days [2] = "Tuesday";
days [3] = "Wednesday";
days [4] = "Thursday";
days [5] = "Friday";
days [6] = "Saturday";
如何快速优雅地编写代码,以便如果素数的值为 0,则字符串“result”是数组的第一个元素,依此类推,直到如果素数为 6,则字符串“result”是数组的第一个元素第七元素?
最佳答案
您已经将所有有效值存储在一个简单的查找表中,您只需要确保请求的值在可用值的范围内。
基本的答案是做类似...
if (prime >= 0 && prime < days.length) {
result = days[prime];
} else {
result = prime + " is not within a valid range";
// Or throw an exception
}
这样做是为了确保 prime
值在可接受值的有效范围内 ( 0..days.length - 1
),否则它会返回错误消息(或者您可以抛出异常)。
记住,数组是 0
索引,因此需要使用 < days.length
(小于)而不是 <= days.length
(小于或等于)
关于java - 如何使用 if 函数调用数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31467372/