프알못을 위한 Java 04. 조건문 if 와 switch
오늘은 if와 for문을 알아봅시다
조건문 if
어디에 왜 쓰이나?
프로그램을 제작하다보면 특정 조건에서만 동작하게 하고픈 로직이 분명 존재하게 됩니다.
사용자 입력값에 따라 다른 값을 넘겨준다던가 할때 유용하게 사용할 수 있겠죠?
if 사용법
1 2 3 4 5 6 7 | int var = 3; if(var==3) // 조건문 if. 여기서는 var이 3이면 조건식을 만족한다. { // 조건식이 만족하면 실행되는 System.out.println("I'm "+ var); } | cs |
3행에서 if문을 써서 조건을 확인하고 있습니다. 여기서는 var이 3일때를 조건으로 놓고 만족한다면 if 내부의 루틴을 실행하게 됩니다.
만약 만족하지 않는다면 if내부의 코드는 실행되지 않습니다.
여러가지 조건을 주기
if문을 통해 여러가지 조건을 충족하도록 조건을 줄 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | int var = 3; if(var==3) { System.out.println("I'm "+ var); } else if(var==4) // 추가적인 조건 { System.out.println(" I'm not executable :< "); } else if(var==5) { System.out.println("blah blah"); } else // 아무 조건도 충족 못한다면? System.out.println("Fully not matched!"); | cs |
새로운 키워드가 등장했습니다. else if 와 else.
if else
if문으로 조건을 주고 그 외의 조건을 더 주고 싶다면 if else를 통해 조건을 주면 되겠습니다.
예제에서는 if문 외의 조건을 추가적으로 else if를 통해 2개 더 주고 있습니다.
else
else문은 만약 위 조건식이 모두 충족하지 않을 경우 실행되는 조건입니다. var이 3,4,5 중 하나도 충족하지 않는다면 else문 내의 코드가 실행될것입니다.
if문 내의 if?
if문 내에 if문을 추가적으로 사용할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 | int var = 3; int var2 = 4; if(var==3) { if(var2==4) // 이중 if { System.out.println("var2: "+var2); } } | cs |
if문을 2중으로 사용해서 이런식으로 조건을 줄 수 있습니다. var이 3일경우 처음 조건이 실행되며, 그다음 var2 4일 경우에만 8행의 출력문이 실행되게 됩니다.
if문을 이런식으로 다중으로 사용할 수 있지만 꼭 필요한 경우가 아니라면 이런 방식은 지양하고 코드를 작성하셔야 합니다.
위의 코드라면 이렇게 개선해볼 수 있겠죠?
1 2 3 4 5 6 7 | int var = 3; int var2 = 4; if(var==3 && var2==4) { System.out.println("I definitely agree what var is three and var2 is four."); } | cs |
if문 처음에 조건을 다중으로 주는 방법으로 다중 if문을 회피할 수도 있습니다.
다중if문은 꼭 필요한 경우에만!
조건문 switch
또다른 조건문 switch 입니다.
사용하는이유는 if와 마찬가지로 특정코드실행에 조건을 주기 위함입니다.
swtich 문 사용법 - 예제1
1 2 3 4 5 6 7 8 | int var = 3; swtich(var) { case 1: System.out.println(var); break; case 2: System.out.println(var); break; case 3: System.out.println(var); break; } | cs |
switch 외에 생소한 키워드 case와 break 가 보이는군요.
먼저 switch문의 괄호안에 확인할 타깃을 넣어주세요. -> switch(타깃)
5 6 7 | // 타겟이 1일경우 case 1: System.out.println(var); break; // 타겟이 2일경우 case 2: System.out.println(var); break; // 타겟이 3일경우 case 3: System.out.println(var); break; | cs |
case <조건> : <조건이 만족할때의 실행할 코드> 이런식으로 써주시면 됩니다.
예제에서는 var은 3이니까 case 3 조건을 만족 합니다.
break는 각 조건식마다 맨 마지막에 적어주는 키워드로 현재 진행중인 switch문을 종료합니다.
종료를 시키지 않으면 다른 case문도 조건을 무시하고 실행시키므로 조심하셔야 해요.
나쁜 코드 - 예제 2
1 2 3 4 5 6 7 8 | int num = 1; switch(num) { case 1: System.out.println("1만 나오겠지?"); case 3: System.out.println("이건 실행 안될거야"); case 5: System.out.println("ㅎㅎㅎㅎ"); } | cs |
break문을 쓰지 않은 switch ~ case문 입니다.
[예제 2 실행결과]
1만 나오겠지?
이건 실행 안될거야
ㅎㅎㅎㅎ
break가 없으면 이런 참사가 일어나니 종료시점에서 꼭 써주세요.
if에는 else가 있다면 switch에는? - 예제 3
1 2 3 4 5 6 7 8 9 | int num = 10; switch(num) { case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; case 3: System.out.println("3"); break; default: System.out.println(num); break; } | cs |
switch문에도 if의 else 처럼 모든 조건을 충족하지 않으면 실행하는 default 문이 있습니다.
이 예제에서는 num은 조건식을 만족하지 못하므로 default가 실행이 될겁니다.
예제4
1 2 3 4 5 6 7 8 | String s = "A"; switch(s) { case "A": System.out.println(s); break; case "B": System.out.println(s); break; case "C": System.out.println(s); break; } | cs |
이렇게 문자열이 타겟이더라도 잘 돌아갑니다.
예제5
1 2 3 4 5 6 7 8 | String s = "가나"; switch(s) { case "가": System.out.println(s); break; case "가나": System.out.println(s); break; case "가나다": System.out.println(s); break; } | cs |
유니코드문자도 사용가능!
예제6 - 좋은 가독성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | int num = 10; switch(num) { case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; case 3: System.out.println("3"); break; default: System.out.println(num); break; } | cs |
'HighCode > Java' 카테고리의 다른 글
| [JSTL] Map에 있는 elements들을 원하는 순서대로 출력 (0) | 2016.12.21 |
|---|---|
| [Spring] Restful한 스프링 @ResponseBody vs @RestController (1) | 2016.12.21 |
| 프알못을 위한 Java 04. 조건문 if 와 switch (0) | 2016.09.27 |
| [TIP] 정규표현식(Pattern Matching) 완전 정리! (6) | 2016.09.22 |
| [TIP] 두 날짜 사이의 차이 계산하기 (1) | 2016.09.21 |
| 프알못을 위한 Java - 02. 문자열 출력 (0) | 2016.09.04 |