【问题标题】:How to get output from a function in Java?如何从Java中的函数获取输出?
【发布时间】:2017-08-18 11:13:40
【问题描述】:

我有一个调用这个函数的主程序:

public static void eucDist(int i, double data[][], double weight[][]) {

    double sum = 0; 
    double min = 10000;

    for (int j=0; j<5; j++) {
        for (int k=0; k<5; k++) {
            sum = sum + Math.pow((weight[k][j] - data[i][k]),2);
        }

        double dist = Math.sqrt(sum);

        if(dist < min) {
            min = dist;
            int saveCol = j;
        }
    }
}

如何在主程序中获取saveCol

如果我放了

public int getsaveCol(){
    return saveCol;
}

所以我可以用 eucDist.saveCol 调用 saveCOl 但它会返回错误。

【问题讨论】:

  • 发布您的主要课程/方法。
  • 都是同一个类中的那些方法(不是函数)???
  • saveCol 只存在于eucDist 方法中,您不能从外部访问它(并且该方法也不会返回任何内容)
  • @ΦXocę웃Пepeúpaツ:我认为是的
  • @UnholySheep:那么我怎样才能让 saveCol 进入我的主程序?

标签: java function methods output call


【解决方案1】:

你可以从eucDist返回saveCol

public static int eucDist(int i, double data[][], double weight[][]) {

    double sum = 0; 
    double min = 10000;
    int saveCol = 0;

    for (int j=0; j<5; j++) {
        for (int k=0; k<5; k++) {
            sum = sum + Math.pow((weight[k][j] - data[i][k]),2);
        }

        double dist = Math.sqrt(sum);

        if(dist < min) {
            min = dist;
            saveCol = j;
        }
    }

    return saveCol;
}

【讨论】:

  • 那么如何调用该函数以便在我的主程序中获取 thesaveCol?
  • 感谢您的回答确实有效 MonsieurBon 但每次迭代 saveCol 只返回 0 然后它会破坏我的程序
  • @newcomers 这意味着 dist
【解决方案2】:

你可以退货:

public static int eucDist(int i, double data[][], double weight[][]) {

    double sum = 0; 
    double min = 10000;
    int saveCol = -1;

    for (int j=0; j<5; j++) {
        for (int k=0; k<5; k++) {
            sum = sum + Math.pow((weight[k][j] - data[i][k]),2);
        }

        double dist = Math.sqrt(sum);

        if(dist < min) {
            min = dist;
            saveCol = j;
        }
    }
    return saveCol;
}

【讨论】:

  • 为什么int saveCol 必须是-1?
  • @newcomers 必须初始化,否则会出现编译错误。我选择了-1,因为它是一个无效的数组索引,
  • 感谢您的回答 @Maurice Perry 但每次迭代,saveCol 只返回 0 然后它会破坏我的程序
  • @newcomers 如果最小dist在j=0,则返回0,否则返回其他值。
  • 不幸的是,问题出在我的坏数据上,总是在 j=0 中带来最小距离,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-18
  • 2020-01-21
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 2017-09-03
相关资源
最近更新 更多