◻️ DAY-07
◻️ 조건문이란?
- 주어진 조건에 따라 다른 문장을 선택할 수 있도록 프로그래밍 하는 것
- ‘만약 나이가 8살 이상이면 학교에 다닌다’ 라는 문장에서는 ‘나이’가 조건이 된다.
- 조건문은 아래와 같은 형식으로 작성할 수 있다.
1
2
3
4
5
6
7
8
| 만약 (나이가 8상 이상이라면) {
학교에 다닌다 // 조건문, 반복문을 사용할 땐 조건에서 수행할 문장을
// { } 로 묶어서 나타낸다. 이 부분을 블록이라고 한다.
}
그렇지 않다면 {
학교에 다니지 않는다
}
|
◻️ if 문
- 조건문의 가장 단순한 형식은 if 문이다
- 주어진 조건식이
참
일 경우, 중괄호 안에 있는 문장을 수행한다 - 조건식에는
참
,거짓
으로 결과가 판별되는 식이나 참
, 거짓
의 값을 가진 변수
및 상수
를 사용할 수 있다.
1
2
3
4
5
6
| // 만약, 나이가 8살 이상이라면 학교에 다닌다
int age = 10;
if (age >= 8) { // age 값이 8 이상이면
System.out.println("학교에 다닙니다"); // 이 문장을 수행한다
}
|
◻️ if-else 문
- 주어진 조건식이
참
일 경우 if
문 블록 내의 문장을 수행하고 - 주어진 조건식이
거짓
일 경우, else
문 블록 내의 문장을 수행한다 - 프로그램의 논리 흐름이 조금씩 복잡해지기 때문에, 코딩에 앞서
순서도
를 활용하는 것이 좋다. - 수행문이
if
와 else
중 하나만 있더라도 중괄호 { }
은 꼭 쓰는 습관을 들이자.
Q1. “만약 나이가 8살 이상이면 학교에 다닌다, 그렇지 않으면 학교에 다니지 않는다”
1
2
3
4
5
6
7
| int age = 8;
if (age >= 8) {
System.out.println("학교에 다닙니다.");
}
else {
System.out.println("학교에 다니지 않습니다.");
}
|
Q2. gender 변수 값이 ‘F’ 인 경우는 “여성입니다”, 그렇지 않은 경우는 “남성입니다”
1
2
3
4
5
6
7
| char gender = 'F';
if (gender == 'F') {
System.out.println("여성입니다.");
}
else {
System.out.println("남성입니다.");
}
|
◻️ if - else if - else 문
- 하나의 상황에 조건이 여러 개인 경우
if-else if-else
문을 표현할 수 있음 if1...
, if2...
이런식으로 if
를 복수로 사용하지 않고, if-else if
문을 사용하는 이유는if-else-if
문은 하나의 조건을 만족하면 다음 조건을 비교하지 않고 다음 수행문으로 넘어가지만if
문 만으로 이루어진 코드는 조건마다 각각 비교하여 출력한다.- 따라서 하나의 상황에 여러 조건을 비교해야 할 때는
if-else-if
문을 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| if(조건식1) {
수행문1; // 조건식1이 참일 경우에 수행
}
else if(조건식2) {
수행문2; // 조건식2가 참일 경우에 수행
}
else if(조건식3) {
수행문3; // 조건식3이 참일 경우에 수행
}
else {
수행문4; // 위 조건이 모두 해당하지 않는 경우에 수행
}
수행문5; // if-else if-else 문이 끝난 뒤 수행
|
◻️ 놀이 공원 입장료 계산하기
- 취학전 아동(8세 미만)은 1,000원
- 초등학생(14세 미만)은 2,000원
- 중.고등학생(20세미만)은 2,500원
그 이상은 3,000원
- 위 조건일 경우의 놀이공원 입장료 계산 프로그램을 작성하세요
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| /*
* Date: 2021-05-13
* Author: Yon Kim
* Project: [자바 초보탈출 30일]
* Section: 07일차
* Subject: "조건문"
*/
/*
* 놀이공원 입장료 계산하기
* ------------------------------
* 미취학-아동 (8세 미만) 1,000원
* 초등학생 (14세 미만) 2,000원
* 청소년 (20세 미만) 2,500원
* 성인 (20세 이상) 3,000원
*/
package section_04.if_else;
public class if_else1_1 {
public static void main(String[] args) {
int age = 10; // 동일조건인 `나이`에 대해 여러 상황을 비교하므로
int charge = 1000; // if-else-if-else 문을 사용
if (age < 8) {
charge = charge + 500;
System.out.println("미취학아동 ");
}
else if (age < 14) {
charge = charge + 1000;
System.out.println("초등학생 ");
}
else if (age < 20) {
charge = charge + 1500;
System.out.println("청소년 ");
}
else {
charge = charge + 2000;
System.out.println("성인 ");
}
System.out.printf("입장료: " + charge + "원 입니다"); // 여러 문장을 출력할 땐 + 기호로 구분해준다
}
}
|
◻️ 성적에 따라 등급 부여하기
- 100 ~ 90점은 A
- 89 ~ 80점은 B
- 69 ~ 60점은 D
- 나머지는 F
int
형 변수 score
와 char
형 변수 grade
를 사용하여 score
에 따른 grade
출력해보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| /*
* Date: 2021-05-13
* Author: Yon Kim
* Project: [자바 초보탈출 30일]
* Section: 07일차
* Subject: "조건문"
*/
/*
* 성적에 따른 등급 부여하기
* ------------------------------
* 100 ~ 90점은 A
* 89 ~ 80점은 B
* 69 ~ 60점은 D
* 나머지는 F
* `int`형 변수 `score`와 `char`형 변수 `grade`를 사용하여 `score`에 따른 `grade` 출력해보기
*/
package section_04.if_else;
public class if_else1_2 {
public static void main(String[] args) {
int score = 85;
char grade = 'A';
if (score >= 90) {
grade = 'A';
}
else if (score >= 80) {
grade = 'B';
}
else if (score >= 60) {
grade = 'C';
}
else {
grade = 'D';
}
System.out.println(score + "점, " + grade + "등급 입니다");
}
}
|
- 만약 A 또는 B 와 같이 두 가지 조건 중 하나만 택1 하는 경우에는
else-if
문 대신 조건연산자를 이용해 간단하게 프로그래밍 할 수도 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
/*
* 성적에 따른 등급 계산하기(2)
* ------------------------------
* 90점 이상은 A
* 나머지는 B
*
* 두 가지의 조건만 있을 경우, 조건연산자를 사용한 코드로 구현해보기
*/
package section_04.if_else;
public class if_else1_3 {
public static void main(String[] args) {
char grade;
int score;
score = 85;
grade = (score >= 90)? 'A' : 'B';
System.out.println(score + "점," + grade + "등급입니다.");
}
}
|
◻️ Switch-Case
문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
/*
* 순위에 따른 메달 부여
* ------------------------------
* 순위에 따라 다른 색깔의 매달을 부여한다
* 순위에 들지 못하면 'A'값을 부여한다.
*/
package section_04.if_else;
public class switch_case1_1 {
public static void main(String[] args) {
int ranking = 1;
String medalColor;
switch(ranking) {
case 1: medalColor = "Gold";
break;
case 2: medalColor = "Silver";
break;
case 3: medalColor = "Bronze";
break;
default:
medalColor = "A";
}
System.out.println(ranking + " 위에게 " + medalColor + " 메달을 수여합니다");
}
}
```java
/*
* 각 case의 조건이 같은 경우의 작성법
* ------------------------------
* 각 달(month)의 일수(days) 세기
*/
package section_04.if_else;
public class switch_case1_2 {
public static void main(String[] args) {
int days = 31;
int month = 4;
switch(month) {
case 1: case 3 : case 5: case 7 : case 8: case 10 : case 12 : days = 31;
break;
case 4: case 6 : case 9 : case 11 : days = 30;
break;
case 2 : days = 28;
break;
}
System.out.println(month + "월은" + days + "일 입니다.");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| /*
* 문자열을 사용하여 case 문 구현하기
* ------------------------------
*/
package section_04.if_else;
public class switch_case1_3 {
public static void main(String[] args) {
String medal = "Silver";
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
문 연습문제
Q. 5층 건물이 있다. 1층은 약국, 2층은 정형외과, 3층은 피부과, 4층은 치과, 5층은 헬스클럽이다. 건물의 층을 누르면 그 층이 어떤 곳인지 알려주는 엘리베이터가 있다고 했을 때, 5층인 경우, ‘5층 헬스 클럽입니다’ 라고 출력해주는 프로그램을 switch
문을 이용해 작성할 것
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| /*
* Q.
* 5층 건물이 있다.
* 1층 약국, 2층 정형외과, 3층 피부과, 4층 치과, 5층 헬스클럽
* 건물의 층을 누르면 그 층이 어떤 곳인지 알려주는 엘리베이터가 있다고 했을 때,
* 5층인 경우, '5층 헬스 클럽입니다' 라고 출력해주는 프로그램을
* switch 문을 이용해 작성할 것
*/
package section_04.if_else;
public class switch_case1_4 {
public static void main(String[] args) {
int floor = 5;
switch(floor){
case 1:
System.out.println(floor + "층, 약국");
break;
case 2:
System.out.println(floor + "층, 정형외과");
break;
case 3:
System.out.println(floor + "층, 피부과");
break;
case 4:
System.out.println(floor + "층, 치과");
break;
case 5:
System.out.println(floor + "층, 헬스클럽");
break;
default:
System.out.println("버튼을 다시 눌러주세요");
break;
}
}
}
|