将方法调用到矩阵中会产生0而不是正确的临时值

时间:2015-04-30 10:01:53

标签: java matrix methods 2d

这是我新的代码部分:

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

现在,我想从文件中读取这些数字,然后使用一个名为converter的方法将每个数字转换为Celcius。然后将每个新温度放入一个名为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;

   }
}

但是当我打印时,它会以零为单位打印所有内容。我之前必须错过一行代码:

System.out.println(degreeMatrix[i][j]); 

但是无法弄清楚什么是失踪的。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

您缺少的代码行是:

    degreeMatrix[i][j] = tempVal;

您已将文件中的值读入tempVal,这很好,但在打印值之前您没有将其存储在矩阵中:)

答案 1 :(得分:1)

你没有在矩阵中放任何东西,这就是它打印0的原因。 您可以按如下方式在矩阵中插入转换后的值:

int tempVal = inputFile.nextInt();
degreeMatrix[i][j] = converter(tempInDegrees);

请注意,方法名称应以Java中的小写字母开头。