# if 문, 하거나 말거나 메인메소드에서 어떻게 바로 order(18); 이라는 메소드가 호출되는지 실행흐름이 잘 이해가 안갑니다. 예를 들어, 그 전 메소드 파트 학습할 때는 1) ``` public static void main(String[] args) { int n = 3; int x = cube(n); System.out.printf("%d의 세제곱 => %d", n, x); } public static int cube(int n) { return n*n*n; } ``` 이런식으로 메인메소드에서 먼저 입력값을 생성해서 값을 반환한다거나 또는, 2) ``` public static void main(String[] args) { buy(); boil(); } ``` 이런식으로 입력값이 없는 메소드를 호출했던 것 같은데, 조건문에 나오는 메소드 문제들은 제가 문제의 어느부분을 보고 뭘 먼저 생각해서 만들어야하는지 잘 모르겠습니다ㅠㅠ.. #### CODE <a class='btn btn-default' href='/codes/63160'>Link</a> ``` public class Beer { public static void main(String[] args) { order(18); // 18세가 캔맥주를 사려 함 order(19); // 19세.. order(20); // 20세.. } public static void order(int age) { if (age>=19) { System.out.printf("%d세, 성인인증 완료 => 캔맥주가 나왔습니다.\n", age); } } } ``` #### INPUT ``` ``` #### OUPUT ``` 19세, 성인인증 완료 => 캔맥주가 나왔습니다. 20세, 성인인증 완료 => 캔맥주가 나왔습니다. ```
## 크게 다르지 않아요 다음 코드에서 변수 n을 만들고, cube(n)을 호출하죠? ``` public static void main(String[] args) { int n = 3; int x = cube(n); System.out.printf("%d의 세제곱 => %d", n, x); } public static int cube(int n) { return n*n*n; } ``` 이를 이렇게도 바꿀 수 있어요. 변수 n을 만들지 않고 그냥 3을 메소드 입력으로 넣는거죠 ``` public static void main(String[] args) { int x = cube(3); System.out.printf("%d의 세제곱 => %d", 3, x); } public static int cube(int n) { return n*n*n; } ``` 같은 원리로 보시면 돼요