2016-12-01 4 views
0

이것은 내 프로그램이고 매번 배열을 입력하라는 메시지가 나타납니다. 어레이를 한 번 입력하고 해당 어레이에서 처리하려고합니다. 그러나이 프로그램은 배열 입력을 다시 요청합니다.
"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)); 

} 

답변

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

} 

을}마다 당신은 첫 번째 방법을 호출하기 때문에() 새로운 배열이 생성되고

관련 문제