简体   繁体   English

将数组从一种方法返回到另一种方法

[英]return array from one method to another method

This is my program and every time it is asking me to input the array. 这是我的程序,每当它要求我输入数组时。 I want to input a array once and process on that array. 我想一次输入一个数组并对该数组进行处理。 But this program is asking me to input array again. 但是这个程序要求我再次输入数组。
from method named "first" I just want to return array and use that array in two different methods add and delete. 从名为“ first”的方法中,我只想返回数组,并在两种不同的方法中使用该数组添加和删除。 But it is always asking me to input all the elements of array that is every time the first method is running while i call any add or delete method from main method. 但这总是要求我输入数组的所有元素,而这是我从main方法调用任何add或delete方法时,第一个方法每次运行时的结果。

package Program; 打包程序;

import java.util.Arrays;
import java.util.Scanner;

public class Functionality {
     public static int[] first( )
    {
        System.out.println("Enter the number of element in array");
        Scanner num = new Scanner(System.in);
        int data = num.nextInt();
        //return data;
        Scanner ar = new Scanner(System.in);
        int arr[] =  new int[data];
        System.out.println("Enter "+data+" Numbers");
        for(int i =0; i<data; i++){
            System.out.println("Enter NUmber :"+(i+1));
            arr[i] = num.nextInt();
    }
        System.out.println();
        System.out.println(Arrays.toString(arr));
    return arr; 
    }

    public static void main(String[] args) {
        add();
        delete();

        }
 static void add(){
int arr[]=first();
System.out.println("Enter the number you want to add");
Scanner one = new Scanner(System.in);
int naya = one.nextInt();
for(int i = 0; i<=arr.length-1; i++){
    arr[i]= arr[i] + naya;
}
System.out.println("The added array is");
System.out.println(Arrays.toString(arr));
}
 static void delete(){
    int arr[]=first();
    System.out.println("Enter the number you want to substract");
    Scanner two = new Scanner(System.in);
    int arko = two.nextInt();
    for(int i =0; i <= arr.length-1; i++ ){
        arr[i]=arr[i]-arko;
    }
    System.out.println("The Substracted array is");
    System.out.println(Arrays.toString(arr));

}

You should obtain reference to an array and passing it during subsequent methods invocations. 您应该获取对数组的引用,并在后续方法调用期间将其传递。

This should do the trick: 这应该可以解决问题:

class Functionality {

static int[] first() {
    System.out.println("Enter the number of element in array");
    Scanner num = new Scanner(System.in);
    int data = num.nextInt();
    //return data;
    Scanner ar = new Scanner(System.in);
    int arr[] = new int[data];
    System.out.println("Enter " + data + " Numbers");
    for (int i = 0; i < data; i++) {
        System.out.println("Enter NUmber :" + (i + 1));
        arr[i] = num.nextInt();
    }
    System.out.println();
    System.out.println(Arrays.toString(arr));
    return arr;
}

public static void main(String[] args) {
    int arr[] = first();
    add(arr);
    delete(arr);

}

static void add(int arr[]) {
    System.out.println("Enter the number you want to add");
    Scanner one = new Scanner(System.in);
    int naya = one.nextInt();
    for (int i = 0; i <= arr.length - 1; i++) {
        arr[i] = arr[i] + naya;
    }
    System.out.println("The added array is");
    System.out.println(Arrays.toString(arr));
}

static void delete(int arr[]) {
    System.out.println("Enter the number you want to substract");
    Scanner two = new Scanner(System.in);
    int arko = two.nextInt();
    for (int i = 0; i <= arr.length - 1; i++) {
        arr[i] = arr[i] - arko;
    }
    System.out.println("The Substracted array is");
    System.out.println(Arrays.toString(arr));

}

} }

Your program is asking You every time to input array, because every time You invoke method first() new array is being created 您的程序每次都要求您输入数组,因为每次您调用方法first()时都会创建新数组

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM