조건문 : 주어진 조건에 따라 다른 문장을 선택할 수 있도록 프로그래밍하는 것
if문과 if-else문
● if문 : 만약 ~ 라면 ●
if(조건식) {
수행문; //조건식이 참일 경우 이 문장 수행
}
주어진 조건식이 '참'일 경우 중괄호 안에 있는 문장을 실행한다.
조건식에는 결과가 참, 거짓으로 판별되는 식이나 참, 거짓의 값을 가진 변수, 상수를 사용할 수 있다.
연산의 결과가 참, 거짓이 되는 관계 연산자를 자주 사용한다.
int age = 10;
if(age >= 8) { //age값이 8 이상이면
System.out.println("학교에 다닙니다"); //이 문장 실행
}
● if-else문 : 만약 ~ 라면, 그렇지 않다면 ●
if(조건식) {
수행문1; //조건식이 참일 경우 이 문장 수행
}
else{
수행문2; //조건식이 거짓일 경우 이 문장 수행
}
조건식을 만족하는 경우와 만족하지 않는 경우를 모두 나타낼 때는 if-else문을 사용한다.
주어진 조건식이 '참'일 경우 if문 블록 안에 있는 문장을 수행하고,
'거짓'일 경우에는 else문 블록 안에 있는 문장을 수행한다.
[실습] 나이에 따라 다른 문장 출력하기
package ifexample;
public class IfExample1 {
public static void main(String[] args) {
int age = 7;
if(age > 8) {
System.out.println("학교에 다닙니다.");
}
else {
System.out.println("학교에 다니지 않습니다.");
}
}
}
[실습] 성별에 따라 다른 문장 출력하기
package ifexample;
public class IfExample1_1 {
public static void main(String[] args) {
char gender = 'F';
if(gender == 'F') {
System.out.println("여성입니다.");
}
else {
System.out.println("남성입니다.");
}
}
}
if-else if-else문
하나의 상황에 조건이 여러 개인 경우 if-else if-else문으로 표현
if(조건식1) {
수행문1; //조건식1이 참일 경우 수행
}
else if(조건식2) {
수행문2; //조건식2가 참일 경우 수행
}
else if(조건식3) {
수행문3; //조건식3이 참일 경우 수행
}
else {
수행문4; //위의 조건이 모두 해당하지 않는 경우 수행
}
수행문 5; //if-else if-else문이 끝난 후 수행
[실습] if-else if-else문으로 입장료 계산하기
package ifexample;
public class IfExample2 {
public static void main(String[] args) {
int age = 9;
int charge;
if(age > 8) {
charge = 1000;
System.out.println("취학 전 아동입니다.");
}
else if(age < 14) {
charge = 2000;
System.out.println("초등학생입니다.");
}
else if(age < 20) {
charge = 2500;
System.out.println("중, 고등학생입니다.");
}
else {
charge = 3000;
System.out.println("성인입니다.");
}
System.out.println("입장료는" + charge + "원입니다.");
}
}
● if-else if문과 if-if문의 차이 ●
if-else if문은 하나의 조건을 만족하면 나머지 조건을 비교하지 않고 다음 수행문으로 넘어간다.
하지만, if문으로만 이루어진 코드는 조건마다 각각 비교하기 때문에 여러 조건에 만족하는 경우가 생겨
원치 않는 결과를 초래할 수 있다.
그래서 하나의 상황에 여러 조건을 비교하는 경우에는 if-else if문으로 코드를 작성해야 한다.
[실습] 성적에 따라 학점 부여하기 - 나 혼자 코딩
앞에서 입력한 예제 코드를 바탕으로 성적에 따라 학점을 부여하는 프로그램을 만들어 보자.
100~90점은 A, 89~80점은 B, 79~70점은 C, 69~60점은 D, 나머지는 F이다.
int형 변수 score와 char형 변수 grade를 사용하여 score에 따른 grade를 출력해 보자.
package ifexample;
public class IfExample_grade {
public static void main(String[] args) {
int score = 84;
char grade;
if(score >= 90) {
grade = 'A';
}
else if(score >= 80) {
grade = 'B';
}
else if(score >= 70) {
grade = 'C';
}
else if(score >= 60) {
grade = 'D';
}
else {
grade = 'F';
}
System.out.println("성적 : " + score);
System.out.println("학점은 " + grade + "입니다.");
}
}
조건문과 조건연산자
if-else문은 조건 연산자로도 구현이 가능하다
서로 다른 두 수 a, b를 비교해 둘 중 더 큰 수를 max 변수에 대입하는 코드를 구현
if(a > b) max = a; else max = b; |
→ | max = (a > b) ? a : b; |
가독성은 if-else문이 더 좋음
선택이 두 가지만 있는 간단한 조건문에서는 if-else문뿐만 아니라 조건 연산자도 사용할 수 있다.
switch-case문
if(조건식1) { 수행문1; } else if(조건식2) { 수행문2; } else if(조건식3) { 수행문3; } else { 수행문4; } |
→ | switch(조건) { case 값1 : 수행문1; break; case 값2 : 수행문2; break; case 값3 : 수행문3; break; default : 수행문4; } |
case : ~ break;까지가 조건에 해당하는 문장이다.
일치하는 case가 없다면 default 코드가 수행되는데 if-else if문에서 맨 마지막 else문과 같은 역할이다.
break는 switch-case문의 수행을 멈추고 빠져나가도록 만든다.
주로 조건이 하나의 변수 값이나 상수 값으로 구분되는 경우 switch-case문을 사용한다.
[실습] switch-case문 예제
package ifexample;
public class SwitchCase {
public static void main(String[] args) {
int ranking = 1;
char medalColor;
switch(ranking) {
case 1 : medalColor = 'G';
break;
case 2 : medalColor = 'S';
break;
case 3 : medalColor = 'B';
break;
default : medalColor = 'A';
}
System.out.println(ranking + "등 메달의 색깔은 " + medalColor + "입니다.");
}
}
case문은 여러 경우를 동시에 처리할 때도 사용이 가능하다.
case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : day = 31;
break;
case 4 : case 6 : case 9 : case 11 : day = 30;
break;
case 2 : day = 28;
break;
각 달의 날짜를 출려한 예제를 만들 때 위처럼 사용할 수도 있다.
switch-case문에서 break문의 역할
break는 case문의 수행을 멈추고 빠져나가도록 만든다.
switch-case문에서 여러 case가 있을 경우, break를 사용하지 않으면 첫 번째 case 조건을 만족해 문장이 실행이 되었더라도 switch-case문에서 빠져나오지 않고 잇따라 나오는 문장까지 모두 수행되어 마지막 default문의 문장이 최종 적용되어 원하는 결과를 얻을 수 없다.
switch-case문에서 조건에 맞는 수행문을 수행한 후 빠져나올 수 있도록 break를 꼭 사용해야 한다.
case문에 문자열 사용하기
switch-case문의 case값에 정수 값뿐만 아니라 문자열도 사용이 가능하다. (자바 7부터 가능)
[실습] switch-case문 예제 (2)
package ifexample;
public class SwitchCase2 {
public static void main(String[] args) {
String medal = "Gold";
switch(medal) {
case "Gold" :
System.out.println("금메달입니다.");
break;
case "Silver" :
System.out.println("은메달입니다.");
break;
case "Bronze" :
System.out.println("동메달입니다.");
break;
default :
System.out.println("메달이 없습니다.");
break;
}
}
}
[실습] switch-case문 연습하기 - 나 혼자 코딩
5층 건물이 있다. 1층 약국, 2층 정형외과, 3층 피부과, 4층 치과, 5층 헬스클럽이다.
건물의 층을 누르면 그 층이 어떤 곳인지 알려주는 엘리베이터가 있다고 할 때 앞의 예제를 참고해서 switch-case문으로 구현해보자. (5인 경우 '5층 헬스클럽입니다'라고 출력)
package ifexample;
public class SwitchCase3 {
public static void main(String[] args) {
int floor = 3;
String biz;
switch(floor) {
case 1 :
biz = "약국";
break;
case 2 :
biz = "정형외과";
break;
case 3 :
biz = "피부과";
break;
case 4 :
biz = "치과";
break;
default :
biz = "헬스클럽";
break;
}
System.out.println(floor + "층 " + biz + "입니다.");
}
}
https://github.com/hyunjin1292/Java_study
※ 이지스퍼블리싱의 'Do it! 자바 프로그래밍 입문' 책을 보고 공부한 내용을 정리하고 있습니다.
'Language > Java' 카테고리의 다른 글
[Java] 객체지향 프로그래밍과 클래스 정의 (1) | 2022.09.21 |
---|---|
[Java] 반복문 (0) | 2022.09.20 |
[Java] 비트 연산자 (0) | 2022.08.10 |
[Java] 기본 연산자 (0) | 2022.08.08 |
[Java] 형 변환 (0) | 2022.07.22 |