간단 지식/Java

05. main 메소드의 매개값 - String[] args

납작한돌맹이 2020. 5. 26. 16:38
반응형
public class Test{
	public static void main(String[] args){
    		System.out.println("hello");
   	}
}
    

메소드는 매개값을 이용할 수 있다. 이는 main 메소드도 매개값을 가질 수 있다는 의미이다. 위 코드를 보면 main의 매개값이 String[] args임을 알 수 있다. 즉, 이름이 args이고 타입이 String인 일차원 배열이 매개값이 된다는 것을 이해할 수 있어야한다.

왜 main 메소드에 매개값이 필요할까?

자바 클래스로 프로그램을 실행하면 JVM이 구동된다는 것을 우리는 안다. JVM이 하는 일 중 길이가 0인 String 타입의 배열을 생성하는 일이 있다. 그리고 생성된 그 배열을 main의 매개값으로 전달해준다. 그러나 위 코드로는 매개값의 쓸모를 잘 못느낄 것이다. 그렇다면 다음 코드를 보자.

public class Args {
    public static void main(String[] args){
        int coin1 = Integer.parseInt(args[0]);
        int coin2 = Integer.parseInt(args[1]);
        int coin3 = Integer.parseInt(args[2]);

        int sum = coin1 + coin2 + coin3;
        int over = sum - 5000;
        System.out.println("예산은 5000원 입니다");

        if(sum > 5000) {
            System.out.println(over + "원이 초과되었습니다");
        }else{
            System.out.println("총" + sum + "원으로, 구매가능합니다");
        }

    }
}

intelij에서 edit configuration에 들어가면 매개변수를 입력하는 란이 존재한다. 1500 2000 3000을 입력하고 실행하면 다음과 같은 결과가 나온다.

Scanner를 이용해서 값을 입력하는 것도 좋고, 이렇게 main의 매개값을 이용해서 값을 입력하는 것도 상관없다. 뭐든 편한대로 코딩하는게 제일 아닐까 싶다.

 

 

(이 글이 도움이 됐다면 광고 한번씩만 클릭 해주시면 감사드립니다, 더 좋은 정보글 작성하도록 노력하겠습니다 :) )

반응형