# 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세, 성인인증 완료 => 캔맥주가 나왔습니다.
```
sehongpark님의 답변
## 크게 다르지 않아요
다음 코드에서 변수 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;
}
```
같은 원리로 보시면 돼요