提问者:小点点

方法返回 Java 赋值


好吧,这是我遇到麻烦的Java作业。我之前问过这个问题,得到了一些很好的评论和建议,但是后来我更清楚地理解了这个作业,问题发生了一些变化。这是作业:

                                        ***

你的任务是通过编写三个方法(askInfo,copyInfo和setArray)来完成下面的程序。程序应要求输入整数(最多 100 个整数),直到用户键入零。整数可以从 1 到 100 不等,它们存储在具有 100 个元素的数组中。使用 askInfo 方法请求数字,该方法接收以数字作为参数的数组。方法返回整数的个数。数字零不会保存在数组中;它仅用于停止提供输入。然后将给定的数字复制到另一个数组中,该数组的大小是给定数字的数量。复制是使用 copyInfo 方法完成的,该方法接收两个数组作为参数。在此之后,新数组的元素使用 setArray 方法按升序排列,并使用 printArray 方法打印在屏幕上。

要完成的程序:

导入java.util.*;

公共课复习练习{

public static void main(String[] args) {



    int[] tempArray = new int[100];

    System.out.println("Type in numbers. Type zero to quit.");

    int amountOfNumbers = askInfo(tempArray);



    int[] realArray = new int[amountOfNumbers];

    copyInfo(realArray, tempArray);



    setArray(realArray);



    printArray(realArray);

}


// Your code here


public static void printArray(int[] realArray ) {

    System.out.println("\Ordered array: ");

    for(int i = 0; i < realArray .length; i++) {

        System.out.println(realArray [i]);

    }

}

打印示例:

键入数字。键入零退出。1.数量:3 2。数字:83。编号:54。编号:65。编号:9 6。编号:0

有序阵列:9 8 6 5 3

public static int askInfo(int[]tempArray){//askInfo-metodi

    Scanner reader = new Scanner(System.in);

int I;

    for (i = 0; i < tempArray.length; i++) {

        System.out.print((i+1) + ". number: ");
        tempArray[i] = reader.nextInt();

    if (tempArray[i] == 0) {
    return tempArray[i];    
    }


    }

    return tempArray[i];

}   



                       ***

如何注册输入并获取要传递给赋值中下一个方法的数字量,如赋值中所述。


共1个答案

匿名用户

您永远不会将整数<code>luku</code>值存储在数组中,因此数组永远不会改变所有零的默认初始化整数值。在循环中,您需要添加

tempA[i] = luku;

在 if 语句确认 luku 不是 0 之后。总而言之:

if (luku == 0) {
    return i;   
}
tempA[i] = luku;