我整个周末都被困在这段代码上,我只需要一个有关我所缺少内容的指针。这是学校的作业,所以我不想要答案,而只想知道我做错了什么。 我需要创建一个2D数组,该数组存储已输入的所有华氏用户值以及它们对摄氏度和开尔文的转换。我的数组将存储该值,但在下一次迭代时将其清除。 这是我的相关代码和最近的尝试:
for (int i = 0; i <= 10; i++){
//call method to show the main menu
showMenu();
System.out.print("Enter your selection: ");
mySelection = keyboard.nextInt();
//switch statement to pick menu option selected.
switch(mySelection){
//calculate celcius
case 1: System.out.print("Please enter a Farenheit value: ");
enteredF = keyboard.nextInt();
showCelcius(enteredF);
popArray(enteredF, i);
break;
//calculate kelvin
case 2: System.out.print("Please enter a Farenheit value: ");
enteredF = keyboard.nextInt();
showKelvin(enteredF);
popArray(enteredF, i);
break;
这是我遇到问题的部分:
public static float[][] popArray(float userValue, int i){
float[][] dataHolder = new float[3][10];
dataHolder[0][i] = userValue;
dataHolder [1][i] = showCelcius(userValue);
dataHolder [2][i] = (float)showKelvin(userValue);
System.out.println("Farenheit: " + Arrays.toString(dataHolder[0]));
System.out.println("Celcius: " + Arrays.toString(dataHolder[1]));
System.out.println("Kelvin: " + Arrays.toString(dataHolder[2]));
return dataHolder;
我需要它将所有值存储在数组中,但它会一直清除上一个条目。例如输入值0,25和10给我:
输入0:
Fahrenheit: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Celsius: [-17.777779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Kelvin: [255.37222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
输入25:
Fahrenheit: [0.0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Celsius: [0.0, -3.8888888, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Kelvin: [0.0, 269.2611, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
输入10个:
Fahrenheit: [0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Celsius: [0.0, 0.0, -12.222222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Kelvin: [0.0, 0.0, 260.92776, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
我希望输出为:
Fahrenheit: [0.0, 25.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Celsius: [-17.777779, -3.8888888, -12.222222, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
Kelvin: [255.37222, 269.2611, 260.92776, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
为什么我的阵列每次都会清除?我还没弄清楚。