# while 문 #### CODE <a class='btn btn-default' href='/codes/47661'>Link</a> ``` public class test{ public static void main(String[]args){ int n=Integer.parseInt(args[0]); mid(n); //여기서 mid 메소드를 호출하고, 바로 위에서 지정해준 변수를 mid 메소드에 입력값으로 넣는다. } public static void mid(int a){ // 여기서 mid 매소드를 정의한다. // ?궁금점 : mid 메소드를 정의할때 괄호안의 입력변수는 int a이고, // 위에서 메소드 호출시 입력값으로 사용되는 변수는 n 인데, // 문자가 서로 달라도 코드 실행하는덴 상관이 없네요. // 일치 시키지 않아도 되는건가요?? System.out.println("카운트 다운을 시작합니다.."); while(a>=0){ System.out.printf("%d..\n",a); a--; } System.out.println("발사!!"); } } ``` #### INPUT ``` 5 ``` #### OUPUT ``` 카운트 다운을 시작합니다.. 5.. 4.. 3.. 2.. 1.. 0.. 발사!! ```
# 변수의 스코프와 파라미터로 값 전달 main() 메소드의 n과 mid() 메소드의 파라미터 a는 서로 다른 변수입니다. 이는 서울 철수와 부산 철수가 서로 다른 사람인 것과 같은데요. ``` public class test{ public static void main(String[]args){ int n = Integer.parseInt(args[0]); // n은 main() 메소드에서 정의된 변수 mid(n); // n의 값을 mid() 메소드로 전달. 가령, n의 값이 4라고 한다면 } public static void mid(int a) { // int a = 4; 가 수행 됨. 이러한 값 전달은 n과 a는 변수명과는 상관이 없음. System.out.println("카운트 다운을 시작합니다.."); while(a>=0){ System.out.printf("%d..\n",a); a--; } System.out.println("발사!!"); } } ``` 예시 코드의 n에 4라는 값이 저장되있다 할 때, 메소드 호출 시 4는 파라미터 a로 대입됩니다. 이는 마치 A 친구의 포스트잇(int n)에 적힌 값 4를 B 친구가 보고 자기 포스트잇(int a)에 받아 적는 것과 같습니다.