2016-12-01 6 views
0

これは私のプログラムであり、配列を入力するよう求められるたびに発生します。 アレイを一度入力してそのアレイで処理したいとします。 しかし、このプログラムは配列を再度入力するように求めています。
"first"という名前のメソッドからは、配列を返して、その配列を2つの異なるメソッドaddとdeleteで使いたいだけです。しかし、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)); 

} 

答えて

1

配列への参照を取得し、その後のメソッドの呼び出し中に渡す必要があります。

これはトリックを行う必要があります:あなたのプログラムはあなたに入力配列にするたびに求めている

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

} 

を}たびにあなたが最初のメソッドを呼び出すために()新しい配列が作成されて

関連する問題