当前位置: 首页 > 知识库问答 >
问题:

如何使用方法返回用户输入值的双数组?

周育
2023-03-14

我想创建一个方法,返回用户输入值的双数组。我已经想出了如何创建一个方法,让用户选择一个数组应该包含多少个元素,然后将大小传递给下一个方法,即吐出一个由用户输入值组成的双数组。

我在这里的目标是练习学习如何使用基本方法(只是公共静态方法)来分解和解决手头的问题。

... java包array_exercises;导入java.util.扫描仪;

公共类Array_练习{

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {

    // Get number of elements to store values from the user
    int number = numOfElements();

    System.out.println(valueOfElements(number));

}

public static int numOfElements () {
    // Create a Scanner object to get the user's input
    Scanner input = new Scanner (System.in);

    // Get the input from the user
    System.out.print("Enter how many number of the type double do you want"
            + " to store in your array? ");

    return input.nextInt();
}

public static double[] valueOfElements (int num) {
    // Create a Scanner object to get the user's value for each element
    Scanner input = new Scanner (System.in);

    // Declare an array of doubles
    double[] double_array = new double[num];

    // Loop through the elements of double array
    for (int i = 0; i < double_array.length; i++) {
        System.out.print("Enter a value #" + (i + 1) + ": ");
        double_array[i] = input.nextDouble();
    }
    return double_array;
}

}

预期的输出应该打印出main方法中双精度数组的所有值。

我得到的只是:

运行:输入要在数组中存储多少个double类型?2输入值#1:1.234567输入值#2:2.345678[D@55f96302

为什么会这样?我做错了什么?我只是一个初学者,这学期我要上Java课,所以对我来说一切都是新的。

共有2个答案

霍锦
2023-03-14

首先,您必须了解,在java中,数组变量是一个引用。这意味着,当您尝试打印数组变量时,它打印出的是内存地址,而不是数组的元素。解决问题的方法是将函数的返回值保存到数组中,然后循环遍历数组中的每个元素。

double[] values = valueOfElements(number);
for(int i = 0; i < values.length; i++){
    System.out.println(values[i]);
}

[]取消引用双精度,因此您正在访问双精度值,而不是内存地址值。

戎永福
2023-03-14

数组是java中的一个对象,因此它是通过调用其toString()方法来打印的。此方法对array类帮助不大,并且不会打印数组内容。要打印数组内容,可以调用数组。toString(yourArray),它将返回数组内容的字符串表示形式。

你应该更换

System.out.println(valueOfElements(number));

具有

System.out.println(Arrays.toString(valueOfElements(number)));

并添加以下导入语句:

import java.util.Arrays;
 类似资料:
  • 本文向大家介绍php版微信返回用户text输入的方法,包括了php版微信返回用户text输入的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php版微信返回用户text输入的方法。分享给大家供大家参考,具体如下: 获得用户输入的内容,并发回相同内容 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结

  • 以下是任务的具体要求: “首先,启动NetBeans并关闭之前可能打开的所有项目(在顶部菜单“转到文件”)== 然后创建一个名为“MinMax”(不带引号)的新Java应用程序,该应用程序声明一个长度为5的双精度数组,并使用方法使用来自命令行的用户输入填充数组,并打印出数组中的max(最高)和min(最低)值。确定最大值和最小值的方法可能不使用Java中的任何内置排序方法。也就是说,您需要在这些方

  • 问题内容: 我遇到一种情况(在硒测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全密码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了硒文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 问题内容: 我有一种情况(在selenium测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全代码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了selenium文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 我有一个双数组,其中我需要使用jtextfield输入搜索第一行,以获得索引(I的位置),然后使用该索引号来标识第二行的位置,并使用第二个数组行中的变量。我用它来得到数组第二行的毛利率乘数,它基于第一行数组中的百分比利润的位置。 感谢您的帮助。我已经搜索了其他数组链接,但它们处理的是位置而不是位置的内容。 public void getMarginArray(){

  • 我需要从查询a级状态回来。在查询中,我发送两个用户输入:body_weight和lift_weight。因此,任务是:获得最接近的体重值,并比最接近的lift_weight值更接近用户输入并打印出水平示例:用户体重=54 kg,他的lift weight为60 kg,这是使他达到中间水平。 我试着用工会做些什么,但在Mariadb是错误的: 我只想在我的Java专家系统中使用那一行