gpt4 book ai didi

Java – For 循环未通过数组正确执行

转载 作者:行者123 更新时间:2023-12-01 16:56:34 25 4
gpt4 key购买 nike

我有两个数组,一个是充满马拉松运动员的字符串数组,下一个是充满马拉松运动员各自时间的整数数组。我试图输出最快的运行者+他/她的时间以及第二快的运行者+他/她的时间。到目前为止,我已经能够输出最快的运行者和他的时间,但是当我尝试输出第二快的运行者+她的时间时,循环输出两个运行者的时间而不是一个。我附上了代码供引用:

此外,也欢迎任何有关简化/改进代码的意见。

public class APCS {
public static void main(String[] arguments) {

String[] names = {
"Elena", "Thomas", "Hamilton", "Suzie", "Phil", "Matt", "Alex",
"Emma", "John", "James", "Jane", "Emily", "Daniel", "Neda",
"Aaron", "Kate"
};

int[] times = {
341, 273, 278, 329, 445, 402, 388, 275, 243, 334, 412, 393, 299,
343, 317, 265
};

int timeIndex = 0;
int secondTimeIndex = 0;
for (int i = 0; i < times.length; i++) {
if (times[i] > times[timeIndex]) {
timeIndex = i;
System.out.println(names[timeIndex] + " " + times[timeIndex]);
}

if (times[i] > times[secondTimeIndex]) {
if (times[i] == times[timeIndex]) {
continue;
}
secondTimeIndex = i;
System.out.println(names[secondTimeIndex] + " " + times[secondTimeIndex]);
}
}

}
}

这是我的输出:

Phil 445
Matt 402
Jane 412

最佳答案

您的 System.out.println 位于错误的位置,现在正在报告所需索引的更改,而不是最终结果。 printlns 应该在 for 循环完成后调用。

for (int i = 0; i < times.length; i++) {
if (times[i] > times[timeIndex]) {
timeIndex = i;
//System.out.println(names[timeIndex] + " " + times[timeIndex]);
}

if (times[i] > times[secondTimeIndex]) {
if (times[i] == times[timeIndex]) {
continue;
}
secondTimeIndex = i;
//System.out.println(names[secondTimeIndex] + " " + times[secondTimeIndex]);
}
}
System.out.println("Fastest: " + names[timeIndex] + " " + times[timeIndex]);
System.out.println("Second: " + names[secondTimeIndex] + " " + times[secondTimeIndex]);

关于Java – For 循环未通过数组正确执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31929052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com