将该方法调用到矩阵中会产生 0 而不是正确的温度
calling the method into matrix yields 0 instead of correct temps
这是我的新代码部分:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
double tempVal = inputFile.nextDouble();
degreeMatrix[i][j] = converter(tempVal);
System.out.println(degreeMatrix[i][j]);
好的,所以我创建了一个名为 inMatrix.txt 的文件。在这个文件中说我有一个 4 数字,它是华氏温度的临时值,例如:
12
11
40
19
现在,我想从文件中读取这些数字,然后使用一种称为转换器的方法将每个数字转换为摄氏度。然后将每个新温度放入一个名为 degreeMatrix 的 2x2 矩阵中,我将逐行填充它。然后在处理完每个数字后,将使用 for 循环从 degreeMatrix 中打印出每个新温度。
这是我的代码:
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class TempConversion {
public static void main(String[] args) throws IOException {
File matrixFile = new File("inMatrix.txt");
Scanner inputFile = new Scanner(matrixFile);
double [][] degreeMatrix = new double[2][2];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
double tempVal = inputFile.nextInt();
System.out.println(degreeMatrix[i][j]);
//System.out.println(degreeMatrix);
}
}
}
public static double converter(double temp2){
double tempC = 0.0;
tempC = (temp2-32.0)*(5.0/9.0);
System.out.println(tempC);
return tempC;
}
}
但是当我打印时,它打印的所有内容都是零。我一定是在 main 之前遗漏了一行代码:
System.out.println(degreeMatrix[i][j]);
但无法弄清楚缺少什么。谢谢你的帮助。
您缺少的代码行是这样的:
degreeMatrix[i][j] = tempVal;
您已将文件中的值读入 tempVal
,这很好,但是在打印值之前您没有将其存储在矩阵中 :)
您没有在矩阵中放入任何东西,这就是它打印 0 的原因。
您可以按如下方式在矩阵中插入转换后的值:
int tempVal = inputFile.nextInt();
degreeMatrix[i][j] = converter(tempInDegrees);
注意Java.
方法名要以小写字母开头
这是我的新代码部分:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
double tempVal = inputFile.nextDouble();
degreeMatrix[i][j] = converter(tempVal);
System.out.println(degreeMatrix[i][j]);
好的,所以我创建了一个名为 inMatrix.txt 的文件。在这个文件中说我有一个 4 数字,它是华氏温度的临时值,例如: 12 11 40 19
现在,我想从文件中读取这些数字,然后使用一种称为转换器的方法将每个数字转换为摄氏度。然后将每个新温度放入一个名为 degreeMatrix 的 2x2 矩阵中,我将逐行填充它。然后在处理完每个数字后,将使用 for 循环从 degreeMatrix 中打印出每个新温度。
这是我的代码:
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
public class TempConversion {
public static void main(String[] args) throws IOException {
File matrixFile = new File("inMatrix.txt");
Scanner inputFile = new Scanner(matrixFile);
double [][] degreeMatrix = new double[2][2];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
double tempVal = inputFile.nextInt();
System.out.println(degreeMatrix[i][j]);
//System.out.println(degreeMatrix);
}
}
}
public static double converter(double temp2){
double tempC = 0.0;
tempC = (temp2-32.0)*(5.0/9.0);
System.out.println(tempC);
return tempC;
}
}
但是当我打印时,它打印的所有内容都是零。我一定是在 main 之前遗漏了一行代码:
System.out.println(degreeMatrix[i][j]);
但无法弄清楚缺少什么。谢谢你的帮助。
您缺少的代码行是这样的:
degreeMatrix[i][j] = tempVal;
您已将文件中的值读入 tempVal
,这很好,但是在打印值之前您没有将其存储在矩阵中 :)
您没有在矩阵中放入任何东西,这就是它打印 0 的原因。 您可以按如下方式在矩阵中插入转换后的值:
int tempVal = inputFile.nextInt();
degreeMatrix[i][j] = converter(tempInDegrees);
注意Java.
方法名要以小写字母开头