java - 如何从 Java 函数返回值?

标签 java return-value

我正在尝试让以下程序运行:

public class funWithNumbers {
public static void main (String[] args) {
    int ten = 10;
    int subend = 7;
    int result = ten - subend;
    int success = 0;
    int trials = 750;
    for (int i=0; i<trials; i++) {
        double randomNumber = Math.random();
        randomNumber = randomNumber * 200;
        randomNumber++;
        int randNum = (int) randomNumber;
        int mystery = randNum;
        returnTen(mystery, subend, result, success);
    }
    int accuracy = (success / trials) * 100;
    System.out.println("Trials Run: " + trials);
    System.out.println("We can say that the number " + result + " indeed equals " + result + " with " + accuracy + "% accuracy.");
}
public static int returnTen(int mystery, int subend, int result, int success) {
    int original = mystery;
    mystery = mystery + mystery;
    mystery = mystery * 5;
    mystery = mystery / original;
    mystery = mystery - subend;
    if (mystery == result) {
        success++;
    }
    return success;
}
}

除最后一条语句(return success)外,此程序中的所有内容均有效。无论出于何种原因,我都无法将 returnTen 函数的值返回到主程序。我尝试在整个过程中使用 System.out.println() 语句(上面未包含)和 returnTen 函数本身调试程序,success 变量成功递增。但我无法将其传回主函数。

应该发生什么:您会注意到该函数基本上是一个常见的数字技巧。 mystery 的最终结果应该是 3(这就是结果)。因此,每次函数运行时,success 都应该递增。这意味着准确率应该是 100%,打印出来的语句应该是 We can say that the number 3 indeed equals 3 with 100% accuracy

发生了什么:end 语句当前打印 我们可以说数字 3 确实等于 3,准确率为 0% 这显然不是真的 - success 不是传回,因此,准确度计算为 0%。

编辑:returnTen(mystery, subend, result, success); 更改为 success = returnTen(mystery, subend, result, success); 将结束语句从 0% 更改为 25000%。 更新: 解决了问题 - success = 需要添加,我不得不将 success/result 更改为 success/trials - 糟糕!

最佳答案

您的 returnTen() 函数正在返回值,但您的代码未使用该值。要使用返回值,行:

returnTen(mystery, subend, result, success);

应该是:

success = returnTen(mystery, subend, result, success);

关于java - 如何从 Java 函数返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41364257/

相关文章:

java - 检查 Java 中名称服务器的 dns 查找

java - 有没有办法改变 mxgraph 的顶点或边样式?

javascript - 控制台日志不打印函数中的变量

Python递归不返回值

Java:返回类(不是实例)

java - 给定整数数组找到所有最长的递增子序列 - 动态规划

java - 证书签名验证失败

java - 带有 Java 注解的列表

objective-c - 返回通过 "convenience constructor"初始化的对象

java - JML 中带返回的 If 语句