가변형 인수

조수경·2021년 11월 3일
0

고급자바

목록 보기
15/97
package kr.or.didt.basic.argtest;

public class ArgsTest {

	/*
	 * 매개변수로 여러개의 정수들을 받아서
	 * 이 정수들의 합계를 구하는 메서드 
	 * (이 정수들의 개수는 상황에 따라 다르다.)
	 * 
	 */
	public int sumArr(int[] data){
		int sum = 0;
		for (int i = 0; i < data.length; i++) {
			sum += data[i];
		}
		
		return sum;
	}
	
	//가변형 인수 => 메서드의 인수값의 개수가 메서드를 호출할 때마다 
	//           다를 때 사용한다.
	// - 가변형 변수는 메서드 안에서는 배열로 처리된다.
	// - 가변형 변수는 한가지 자료형만 사용할 수 있다.(int...data, String) -> 이렇게 여러게 못씀
	
	//가변형 인수를 이용한 메서드
	public int sumArg(int...data){
    //...으로 자료형과 변수명을 이어줌(자료형 인수를 받을수 있는 변수라는 뜻)
		int sum = 0;
		for (int i = 0; i < data.length; i++) {
			sum += data[i];
		}
		
		return sum;
	}
	
	// 가변형 변수와 일반적인 매개변수를 혼합해서 사용할 수 있다.
	// 단, 이 때는 가변형 변수를 제일 뒤쪽에 배치한다.
	public String sumArg2(String name, int...data){
		//(int...data, String name): 순서 바뀌면 오류남
		int sum = 0;
		for (int i = 0; i < data.length; i++) {
			sum += data[i];
		}
		return name + "씨 총점 : "+sum;
	}
	
	
	
// (메서드에서 매개변수가 하는일: 넘겨주고 싶은 데이터를 담아주는 역할을함
//	public void test(int a, int b){
//		
//	}
	
	
public static void main(String[] args) {
      ArgsTest t = new ArgsTest();
 //     t.test(100, 200);
// 인수값 -> 매개변수에 순서대로 들어갈 값, 매개 변수가 두개인데 하나이거나 더 많이 주면 오류가 뜸
		int[] nums = {100, 200, 300};
                //배열 안에 값을 넣어줘야 계산 가능
//		int[] nums2;//변수 만들고
//		nums2 = {1,2,3,4,5}; 
//초기화 / 얘는 왜 안될까? 변수를 만들어놓고 나중에 초기화하는 것 안됨
//		nums2 = new int[]{1,2,3,4,5};//맞는 표현
		
        System.out.println("합계 : "+t.sumArr(nums)); //nums배열 넘겨주기
        System.out.println("합계 : "+t.sumArr(new int[]{100, 200, 300})); 
        //1,2,3,4,5를 갖는 배열(배열 초기화해서 넣기)
        System.out.println();
        
        System.out.println("가변형 합계: "+t.sumArg(100,200,300));
        // 100,200,300자체가 data를 의미
        System.out.println("가변형 합계: "+t.sumArg(1,2,3,4,5));
        System.out.println(t.sumArg2("홍길동", 1,2,3,4,5,6,7,8));
        //1~8까지의 합계가 들어감
	}

}
profile
신입 개발자 입니다!!!

0개의 댓글

관련 채용 정보