2015-01-22 3 views
-1

주 방법에서 다른 방법으로 변수를 전달하는 방법을 알아 내려고하고 있습니까?사용자 입력이있는 재귀 함수 arrray (JAVA)

내 주요 목표는 배열로 사용자 입력을 전달하는 재귀 프로그램을 만드는 것입니다. 다음 재귀 함수를 사용하여 가장 큰 정수를 인쇄합니다. 이것은 내가 지금까지 가지고있는 것입니다.

import java.io.* ; 
import java.util.Scanner; 
public class MaxElement { 



public static void main(String args[]){ 

// Initialize the number array 
int[] Number; 


Number = new int [5]; 

Scanner lop = new Scanner(System.in); 
System.out.println(" Please enter 5 numbers."); 

String a= lop.nextLine(); 
int f = Integer.parseInt(a); 
Number[0]=f; 
System.out.println("Enter 4 more numbers."); 

String b= lop.nextLine(); 
int g = Integer.parseInt(b); 
Number[1]=g; 
System.out.println("Enter 3 more numbers.") ; 

String c= lop.nextLine(); 
int h = Integer.parseInt(c); 
Number[2]=h; 
System.out.println("Enter 2 more numbers.");  

String d= lop.nextLine(); 
int i = Integer.parseInt(d); 
Number[3]=i; 
System.out.println("Enter 1 more number."); 

String e= lop.nextLine(); 
int j = Integer.parseInt(e); 
Number[4]=j; 

lop.close(); 
System.out.println(f+g+h+i+j); 
} 
void MaxElements() { 
    MaxElement M = new MaxElement(); 
    M.f= k; 
+0

당신은 오히려 꽵 이상()) lop.nextInt을 (얻을 수 있습니다. nextLine은 String을위한 것이다. 그렇게하면 구문 분석 할 필요가 없습니다. – ha9u63ar

+0

현재 사용자 입력을받는 방식에 문제가 있습니까? –

답변

0

나는 다른 하나에 내 주요 메서드에서 변수를 전달하는 방법을 알아 내려고 노력하고있어?

다음은 방법입니다.

private static String getName(BufferedReader input) { 
    System.out.println("Do You Remember What Your Name Is?"); 
    try { 
     String name = input.readLine(); 
     return name; 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
     return ""; 
    } 
} 

다음은 main 메소드에서 수행 할 작업입니다.

String name = getName(input); 

재귀 메서드는 단순히 조건이 만족 될 때까지 메서드 내부에서 호출되는 메서드입니다. 입력 코드는 다음 코드로 바꿀 수 있습니다.

package com.ggl.fse; 

import java.util.Scanner; 

public class Recursive { 

    public static void main(String[] args) { 
     Scanner lop = new Scanner(System.in); 

     int length = 5; 
     int[] numbers = new int[length]; 
     String s = "Please enter " + length + " numbers."; 
     System.out.println(s); 

     numbers = getNumbers(lop, numbers, 0, length); 

     for (int i = 0; i < length; i++) { 
      System.out.println(numbers[i]); 
     } 

     lop.close(); 
    } 

    private static int[] getNumbers(Scanner lop, int[] numbers, 
      int index, int length) { 
     String s = lop.nextLine(); 
     int a = Integer.parseInt(s); 
     numbers[index] = a; 

     if (index < (length - 1)) { 
      s = "Enter " + (length - index - 1) + " more numbers."; 
      System.out.println(s); 
      getNumbers(lop, numbers, ++index, length); 
     } 

     return numbers; 
    } 

} 
+0

Gracias 나는 같은 것을 여러 가지 방법으로 배웠고 방법을 호출했습니다. – dregier

0

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

클래스 재귀 {

 static int max(int n,int max) 
     { 

      return n>max?n:max; 
     } 

    static int test(int []a,int n,int max) 
     { 

      if(n==a.length) 
      { 
       return max; 
      } 
      return test(a,n+1,max(a[n],max)); 



     } 
public static void main(String[] args)throws IOException { 
    InputStreamReader r=new InputStreamReader(System.in); 
    BufferedReader br=new BufferedReader(r); 
    int arr[]=new int[7]; 
    System.out.print("enter the elements "); 
    for(int i=0;i<6;i++) 
    { 
     arr[i]=Integer.parseInt(br.readLine()); 
    } 

    int max=test(arr,0,0); 

에서 System.out.println (최대); }

}