Java 我想为每次超过x个错误的时间添加x秒

Java 我想为每次超过x个错误的时间添加x秒,java,Java,我的数学不好,所以我不确定如何做到这一点:我希望time对于1-3个错误,每个错误增加3个,然后4-6个错误,每个错误增加5个,然后对于7个或更多的错误,每个错误增加8个 这是我目前为止所做的,但我的问题是我不确定如何为7及以上的任何数量的错误在每个错误上增加8秒 if (numberOfErrors == 1) { time += 3;} else if (numberOfErrors == 2) {time += 6;} else if (numberOfErrors == 3) {time

我的数学不好,所以我不确定如何做到这一点:我希望
time
对于1-3个错误,每个错误增加3个,然后4-6个错误,每个错误增加5个,然后对于7个或更多的错误,每个错误增加8个

这是我目前为止所做的,但我的问题是我不确定如何为7及以上的任何数量的错误在每个错误上增加8秒

if (numberOfErrors == 1) { time += 3;}
else if (numberOfErrors == 2) {time += 6;}
else if (numberOfErrors == 3) {time += 9;}
else if (numberOfErrors == 4) {time += 14;}
else if (numberOfErrors == 5) {time += 19;}
else if (numberOfErrors == 6) {time += 24;}
else if (numberOfErrors >= 7) {(time += 24) + (numberOfErrors;}
最好的方法是什么?

试试以下方法:

 else if (numberOfErrors >= 7) {
    time += 24 + (numberOfErrors - 7) * 8;
 }
或者,您可以使用更少的代码:

time += numberOfErrors * 3;
if (numberOfErrors > 3) {time += (numberOfErrors - 3) * 2;}
if (numberOfErrors > 6) {time += (numberOfErrors - 6) * 3;}
int[]errtm=newint[]{0,3,6,9,14,19,24};
如果(errcnt<7)时间+=errtm[errcnt];
否则时间+=24+8*errcnt;

我们用来增加的集合是一个小集合,因此我们可以使用数组来保存值。

只是想知道,为什么特定的值会增加,而不是每个错误增加3个?我建议您使用switch语句而不是if-else语句,因为else语句一次只能计算1个语句。除此之外,波希米亚人有正确的答案。
int[] errtm = new int[] { 0,3,6,9, 14,19,24};
if (errcnt < 7) time += errtm[errcnt];
else time += 24+8*errcnt;