본문 바로가기
JAVA 줘? 잡아줘!

[Java]Day_015 : if~else~else if~ 비교해 봅시다. (조건문)

by Boxseo 2023. 8. 24.

if 의 악랄함에 대해선 다들 많이 들어봤겠지

진짜 젤 많이 쓰이고 젤 어렵고 겹으로 쓰면 더 어렵고... 머리 터지고... 

flow chart 짤 때, 진짜 제일 중요한 거 같고... 이 부분을 간단하게 만들 수록 소스가 가벼워진다고 생각합니다.

결국 알고리thm 도 if 등 조건문의 싸움이니깐...

 

자 살짝 설명해보자면

if(x>=50) {

 system.out.print("상위권");

}

뭐 가볍게 이렇게 시작하지? ()안에 조건문이고 그게 참일 때 {}안에 돌아가는 구조. 설명보다 그냥 보시라

대충 위에 처럼 짜면 x가 50이상이면 상위권이 출력되는 것이다. 자세한 건 책이나 다른 블로그 보시고...

 

내가 이 글을 쓰는 건 if / else if / else 를 비교하기 위함이요

 

(예시)

조건이 다음과 같다

 <<<평균이>>>

+ 90  ~ 100  : A학점
+ 81  ~ 90  : B학점  
+ 71  ~ 80  : C학점
+그렇지 않으면 재시험

 

(1) 풀이법 : 각각 다른 if를 선언하여 if 들 사이의 레벨이 같은 조건

if(100>=(int)avg && (int)avg>91) { grade = "A학점";}
if(90>=avg && avg>81) grade = "B학점";
if(80>=avg && avg>71) 
	grade = "C학점";
if(!(avg>71)) { grade = "재시험";}

위의 코드에선 그것 뿐만 아니라 if 조건 선언시 1줄로 입력할 땐 {}를 안치기도 하고, 줄바꿔서 표현하기도 한다.

또한, 마지막 if 가 킬링포인트 인데,  avg>71 이 아닐 때(avg가 71점이하)를 위하여 "!(avg>71) "이라고 표기했다. 너무 신기하지 않나...NOT 을 이렇게 쓰는 건지 처음 알았다... 꼭 기억해두기...

 

 

 

(2) 풀이법 : if / else if / else 의 차이점

if(avg>=91) grade="A학점";
else if(avg >= 81) grade="B학점";
else if(avg >= 71) grade="C학점";
else grade="재시험";

첫번째 if 돌고~ 첫바퀴 돌았지만 해당 안될 때 else if 돌고, 첫째 둘째 아니면 세번째 else if 돌고, 말고 나머지는 else

 

else 랑 else if 랑 구문이 참 헷갈리게도 되어 있는데, 놓치는 범위나 조건이 있을 가능성이 높다. 꼭 세번씩 생각하고 쓰기