gpt4 book ai didi

java - 我的 while 循环做错了什么?

转载 作者:行者123 更新时间:2023-12-01 10:32:06 24 4
gpt4 key购买 nike

我正在开发一个程序,该程序接受用户输入(温度)并将其放入数组中。我对必须创建的最后一个方法感到困惑。我需要遍历数组并从最小到最大打印它们。我需要使用 while 循环来执行此操作。

问题是我需要索引来保持温度值。该指数代表测量体温的日期。我已经有一个方法可以找到数组中的最低值并将其与索引一起打印。

我可以只使用已有的方法并在新方法中使用它吗?如果是这样,我不知道如何在执行 while 循环时调用该方法。我要尝试做的是找到最低值并打印该值和索引,然后将该值更改为我的“未初始化”变量,以便我可以找到下一个最低值,依此类推。

我的代码“LeastToGreatest”中的最后一个方法是我尝试这样做的,但它不起作用。我花了几个小时试图自己解决这个问题。我不知道我需要做什么,也不知道我需要如何组织它才能发挥作用。

这是我所拥有的:

public class Weather {

static int lowestTemp;
static int lowestDay;

private static final int Uninitialized = -999;

public static void main(String[] args) {
// TODO Auto-generated method stub

int[] high = new int[32];


FindLowestTempInArray(low);
System.out.println("\n" + "The lowest low is: " + lowestTemp + " degrees." + "\n"
+ "This temperature was recorded on day: " + lowestDay);



LeastToGreatest(low);
System.out.println("\n" + lowestDay + " " + lowestTemp + "\n");


}


public static int FindLowestTempInArray(int[] T) {
// Returns the index of the lowest temperature in array T

lowestTemp = Uninitialized;
lowestDay = 0;

for (int day = 0; day < T.length; day++) {
if (T[day] != Uninitialized && (T[day] < lowestTemp || lowestTemp == Uninitialized)) {

lowestTemp = T[day];
lowestDay = day;
}
Arrays.asList(T).indexOf(lowestDay);
}
return lowestDay;

}



public static void LeastToGreatest(int[] T) {
lowestTemp = Uninitialized;
lowestDay = 0;

while (lowestDay >= 0 && lowestDay <= 31) {
for (int day = 0; day < T.length; day++) {

if (T[day] != Uninitialized && (T[day] < lowestTemp || lowestTemp == Uninitialized)) {

lowestTemp = T[day];
lowestDay = day;

}
}

}

}

}

最佳答案

是的,您可以在此处重复使用其他方法。

public static void leastToGreates(int[] temps) {
// copying the old array temps into newTempArr
int[] newTempArr = new int[temps.length];
for (int i = 0; i < temps.length; i++)
newTempArr[i] = temps[i];

int days = 0;
while (days < temps.length) {
int lowest = FindLowestTempInArray(newTempArr);
if (newTempArr[lowest] > Uninitialized)
System.out.println("temp: " + newTempArr[lowest] + ", on day: " + lowest);
// setting the temperature of the current lowest day to "Uninitialized"
// (so it's not the lowest temperature anymore)
newTempArr[lowest] = Uninitialized;
days++;
}
}

我在这里所做的是:

  • 复制温度数组(以便能够更改其中的值)而不影响原始数组
  • 打印数组中的最低温度
  • 将该索引的温度设置为“未初始化”
  • 重复

关于java - 我的 while 循环做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034501/

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