JAVA101

준비중..

JAVA101

자바 프로그래밍 입문

06 조건문

# 조건문(conditionals) <div class="embed-responsive embed-responsive-16by9"> <iframe src="https://www.youtube.com/embed/0vWXXoFlT8k" frameborder="0" allowfullscreen></iframe> </div> ## 들어가며 --- 이전 시간, **메소드**의 정의와 호출에 대해 알아보았습니다. 이번 시간에는 상황에 따라 다른 동작을 하는 방법. 이를 알아보도록 하죠. ![클라우드스터딩-자바-메소드](https://i.imgur.com/vFJm2PF.png) ## 조건문이란 --- 조건문이란, *상황에 따라 동작을 달리하는 문법*입니다. 이를 통해 프로그램의 다양한 동작을 만들 수 있죠. 예를 들어 버스카드 요금을 나이를 기준으로 정한다거나, 시험 점수에 따라 등급을 나누는 등의 동작을 만들 수 있습니다. ![클라우드스터딩-자바-조건문](https://i.imgur.com/RcTU4oy.png) 이러한 조건문은 여러가지 종류가 있는데요. 가장 기본이 되는 if 그리고 if-else, 마지막 else-if 까지. 이를 차례로 알아보겠습니다. ## if 문 --- if 문을 사용하면 조건에 따른 동작 여부를 달리할 수 있습니다. 아래는 if 문의 구조인데요. 소괄호 안의 조건식이 참이면, 중괄호의 내용이 수행됩니다. ``` if (조건식) { // 조건식이 참이면 수행할 내용 } ``` 이를 약식 코드로 다음과 같이 작성할 수 있겠네요. 해당 코드는 춥다면 보일러를 틀고 자고, 아니면 그냥 잠을 자는 코드가 되겠습니다. ``` if (춥다면?) { 보일러를 튼다 } 잠을 잔다 ``` ![클라우드스터딩-자바-if-문](https://i.imgur.com/G1y3nlA.gif) ## if-else 문 --- 다음으로 if-else 문입니다. 아래 코드를 보시면, 기존 if 문에 else 영역이 추가된 볼 수 있는데요. 조건식이 참이면 A 영역을, 거짓이라면 B 영역을 수행합니다. 간단하죠? ``` if (조건식) { // A - 조건식이 참이면 수행할 내용 } else { // B - 조건식이 거짓이면 수행할 내용 } ``` 약식 코드를 통해 이해를 도와봅시다. 뭔가를 먹고 겜방에 갈 건데요. 뭐를 먹어야 할까요? 치킨이 땡긴다면 치킨을! 아니면 그냥 밥을 먹고 겜방을 가게 되겠습니다. ``` if (치킨땡김?) { 치킨을 시켜먹는다 } else { 그냥 밥 먹는다 } 겜방을 간다 ``` ![클라우드스터딩-자바-if-else](https://i.imgur.com/dUIdwFh.gif) ## else-if 문 --- 마지막으로 else-if 문 입니다. 기존 if-else문을 양자택일(둘 중 하나를 고름) 이라 한다면, else-if문은 *삼자택일 또는 그 이상*의 선택지를 만들 수 있습니다. 그럼 그 구조를 확인해보도록 보죠. (~~자세한 설명은 생략한다~~) ``` if (조건식 A) { // 조건식 A가 참이면 수행할 영역 } else if (조건식 B) { // 조건식 B가 참이면 수행할 영역 } else { // 모두 다 거짓인 경우 수행할 영역 } ``` 아래는 약식 코드의 예입니다. 중국집에서 뭘 먹고 싶은지 메뉴를 고르고, 마지막 탕수육으로 주문을 마무리하는 시나리오입니다. ``` if (얼큰한거 땡김?) { 짬뽕을 시킨다. } else if (밥 땡김?) { 볶음밥을 시킨다. } else { 짜장면을 시킨다. } 탕수육을 시킨다. ``` ![클라우드스터딩-자바-if-elseif-else](https://i.imgur.com/RL18oia.gif) 여기까지 가장 기본이 되는 조건문에 대해 알아봤는데요, 이와 더불어 자주 사용되는 연산자를 알아둘 필요가 있습니다. 바로 비교 연산자와 논리 연산자입니다. ![클라우드스터딩-자바-비교연산자와-논리연산자](https://i.imgur.com/3HyUDHR.png) ## 비교 연산자 --- 비교 연산자란, *좌우 값의 크기를 비교하여 참/거짓을 반환*합니다. 이를 사용하면 '7은 4보다 큰가?' 또는 '10은 3의 배수인가?'와 같은 다양한 조건식을 만들 수 있습니다. ``` System.out.println(7 > 4); // true System.out.println(10 % 3 == 0); // false ``` 이러한 비교연산자의 종류는 아래와 같습니다. 혹시 종류가 많아서 부담되나요? 겁먹지 마세요. 그때그때 사용하다 보면 저절로 익숙해질겁니다. ![클라우드스터딩-자바-비교-연산자](https://i.imgur.com/fbI3iIe.png) 이를 사용하여 학점 평가 코드를 작성해볼까요? 아래 코드의 실행결과! 어떻게 나올 것 같습니까? 맞습니다. 3번째 조건식에서 참을 만족하죠? 따라서 학점은 B+가 되겠습니다. ``` int score = 88; String grade = "F"; if (score >= 95) { // 95점 이상 grade = "A+"; } else if (score >= 90) { // 90점 이상 grade = "A0"; } else if (score >= 80) { // 80점 이상 grade = "B+"; } else { grade = "B0"; } System.out.printf("당신의 학점은 %s입니다.\n", grade); ``` 그럼 마지막으로, 논리 연산자에 대한 내용을 분석해 보도록 하죠. ## 논리 연산자 --- 논리 연산자란, 논리 값을 통해 새로운 참/거짓을 반환합니다. 그 종류는 아래와 같습니다. ![클라우드스터딩-자바-논리-연산자](https://i.imgur.com/p83w6HQ.png) 그럼 먼저 AND 연산자부터 볼까요? `&&` 연산자는 양쪽 값이 모두 참인 경우 참! 그외의 모든 경우는 거짓을 반환합니다. ``` System.out.println(true && true); // true System.out.println(true && false); // false System.out.println(false && true); // false System.out.println(false && false); // false ``` 다음으로 OR 연산자입니다. `||` 연산자는 하나라도 참이면 참! 그 외의 모든 경우, 거짓을 반환하죠. ``` System.out.println(true || true); // true System.out.println(true || false); // true System.out.println(false || true); // true System.out.println(false || false); // false ``` 마지막 NOT 연산자(`!`)는요, 기존 값을 반대로 변경합니다. ``` System.out.println(!true); // false System.out.println(!false); // true ``` 논리 연산자 간 우선순위는 `!` > `&&` > `||` 임을 주의하세요. ``` System.out.println(true || !true && false); # NOT 연산 => true || false && false # AND 연산=> true || false # OR 연산 => true ``` 이러한 논리 연산자를 사용하면, 더 풍부한 조건식을 만들 수 있습니다. ## 요약 --- #### 조건문이란 - 조건문이란, 상황에 따라 동작을 달리하는 문법이다. - if, else-if, else 구문을 사용하면, 여러 조건 중 한 가지를 선택하여 코드를 수행할 수 있다. #### 비교 및 논리 연산자 - 비교 연산자는, 좌우 값을 비교하여 참/거짓을 반환한다. - 논리 연산자는, 논리값을 통해 새로운 참/거짓을 반환한다. - 비교 연산자와 논리 연산자를 사용하면, 더욱 풍부한 조건식 작성이 가능하다. ## 확인하기 --- <div class="interact_responsive_padding" style="padding:100% 0 0 0;position:relative;margin-bottom:5px;"><div class="interact_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe id="interactApp5cb9d63a6949da0014f86c5a" width="100%" height="100%" style="border:none;max-width:100%;margin:0;" allowTransparency="true" frameborder="0" src="https://quiz.tryinteract.com/#/5cb9d63a6949da0014f86c5a/q/1?method=iframe"></iframe></div></div>