본문 바로가기

프로그래밍 일반/JAVA

[JAVA] IF문 다르게 보기

IF문을 if(조건){ 참일때 실행 }으로만 알고 있으면 실제 코드를 작성하는데 응용이 힘든 점이 많다.

이것을 내가 원하는 값일 때 실행. 시험문제중에 정답일 때만 벨이 울린다고 상상하면 더 많은 부분에서 응용이 가능하다.

 

시험문제처럼 코드를 바라본 것이다. 

Scanner sc = new Scanner();
int j = sc.nextInt();

if (j==1){
"정답입니다"
}else if(j==2){
"오답입니다."
}else if(j==3){
"오답입니다."
}else if(j==4){
"오답입니다."
}

 

이것을 조금 더 응용하면 메뉴판 만드는 코드를 작성할 수 있다. 키오스크같은 것이다.

 

Scanner sc = new Scanner();
int j = sc.nextInt();

System.out.println("메뉴를 선택해주세요");
if (j==1){
햄버거선택 메뉴로 갑니다.
choice_hamberger();
}else if(j==2){
사이드선택 메뉴로 갑니다.
choice_side();
}else if(j==3){
음료 선택 메뉴로 갑니다.
choice_drink();
}else if(j==4){
계산합니다.
calc();
}

 

이것을 switch case문으로 깔끔하게 만들 수 있다.

Scanner sc = new Scanner();
int j = sc.nextInt();


            System.out.println(k+"번을 선택하셨습니다.");
            switch(j) {
                case 1 : 햄버거선택 메뉴로 갑니다. choice_hamberger();
                     break;
                case 2 : choice_side();
                     break;
                case 3 : choice_drink();
                     break;
                case 4 : calc();
                     break;

            }


여기에서 진짜 키오스크처럼 뒤로가기까지 선택하려면 while문을 추가하면 된다.

Scanner sc = new Scanner();
int j = sc.nextInt();

boolean menu = true;
while(menu){

            System.out.println(k+"번을 선택하셨습니다.");
            switch(j) {
                case 1 : 햄버거선택 메뉴로 갑니다. choice_hamberger();
                     break;
                case 2 : choice_side();
                     break;
                case 3 : choice_drink();
                     break;
                case 4 : calc();
                     break;
                default: menu = false;
                     break;
            }
}            

 

 

여기서 선택지, 원하는 값을 선택했을 때 특정 코드 실행의 개념에서 더 나아가

여과기의 개념으로 볼 수 있다. 분류기 정도로 보면 된다.

//어떤 값이 들어올지 모르지만, 1부터 3까지의 값만을 받고 싶다.
if( k==1 || k==2 || k==3 ){

if(k==1){
1번을 실행합니다.
}else if(k==2){
2번을 실행합니다.
}else if(k==3){
3번을 실행합니다.
}

}else{
값을 잘못 선택했습니다.
}

 

if문을 선택지, 여과기의 개념을 도입해서 원하는 값을 찾아 선택한다까지 보았다.

 

참고로 if문에 return 함수를 써서 코드를 깔끔하게 할 수도 있다. clean code

if(check()){
값을 먼저 검증한다음에 실행한다.
}



public boolean check(){
int j = sc.nextInt();
if(k==1){
return true;
}else{
return false;
}
}



while(A){
}
public boolean A(){
}

 

머리속에 그림을 그려볼 수도 있다.