繁体   English   中英

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

[英]return array from one method to another method

这是我的程序,每当它要求我输入数组时。 我想一次输入一个数组并对该数组进行处理。 但是这个程序要求我再次输入数组。
从名为“ first”的方法中,我只想返回数组,并在两种不同的方法中使用该数组添加和删除。 但这总是要求我输入数组的所有元素,而这是我从main方法调用任何add或delete方法时,第一个方法每次运行时的结果。

打包程序;

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));

}

您应该获取对数组的引用,并在后续方法调用期间将其传递。

这应该可以解决问题:

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));

}

}

您的程序每次都要求您输入数组,因为每次您调用方法first()时都会创建新数组

暂无
暂无

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

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