목차
1. 조건문 개관
2~4. if문
5~6. switch문
7. 조건문의 중첩
8. Math.random()
1. 조건문
-조건에 따라 프로그램의 흐름을 분기해서 각각 다른 처리를 하도록 하는 명령문
-if 문과 switch문
-프로그램의 흐름이란 논리적 조건에 따라 프로그램의 제어가 흘러가는 것
->제어 흐름에 따라 프로그램 문장이 실행됨
-조건물을 잘 다루기 위해서는 조건식을 잘 만들어야 함
2. if문 : if(conditon){//실행할 문장}
-괄호() 안의 condition은 true 혹은 false 값 가짐
-논리값으로 조건문의 실행 여부 판단
-괄호 안은 일반적으로 관계 연산식이나 논리 연산식 사용
-조건식의 결과가 true일 경우 if구문 바로 아래의 문장을 수행
-조건식의 결과가 false일 경우 if구문 바로 아래의 문장이 실행되지 않고 if구문이 종료됨
-if문에서 처리할 문장이 한 줄인 경우 블록 기호{} 생략 가능
(여러 줄인 경우 반드시 블록기호{} 사용 -> 괄호 생략시 두 번째 문장은 조건의 결과로 실행하는 문장으로 인식하지 않음)
3. if문: if(condition){//조건식이 true일 때 실행할 문장} else {//조건식이 false일 때 실행할 문장}
-프로그램에서 조건을 사용할 때 비교문의 결과에 따라 참일 때와 거짓일 때 각각 처리해야 할 흐름이 있는 경우 사용
4. if문: if(condtion){//조건식이 true일 때 실행할 문장} else if(condtion){//if(condtion)의 결과가 false이고, 이 조건이 true인 경우 실행할 문장} else {if(condition)과 else if(condition)의 결과가 모두 false인 경우 실행할 문장}
5. switch~case문
-여러 개의 조건이 필요할 때 사용
-범위를 비교하는 연산보다는 하나의 특정 값을 비교하여 프로그램의 흐름을 만들 때 사용
-case 문의 값으로 변수 사용 불가(리터럴, 상수만 가능)
*리터럴? 상수? 상수는 변하지 않는 변수를 의미(메모리 위치), 리터럴은 변수의 값이 변하지 않는 데이터(메모리 위치 안의 값)

-예제: 점수가 90 이상인 경우 "A" 출력, 80 이상~90 미만인 경우 "B"를 출력, 앞의 두 조건에 맞지 않는 이외의 경우에는 "C"를 출력하는 프로그램
int score = 93;
switch (score/10) {//score 변수의 값을 10으로 나눈 몫을 비교하는 값으로 사용
case 10 : //score/10 == 10, 100
System.out.println("A");
break;
case 9 : //score/10 == 9, 90 이상
System.out.println("A");
break;
case 8 : //score/10 == 8, 80 이상 90 미만
System.out.println("B");
break;
default: //80 미만
System.out.println("C");
break;
}
*break 쓰는 것을 잊지 말자. break 안 쓰면 A/B/C 모두 출력됨.
"A"가 출력된다.
아래와 같이 쓸 수도 있다.

6. switch~case 문: break, default 생략
-value값이 일치하는 case 구문 위치에서 실행됨
-break 키워드가없으면 아래에 있는 모든 case 구문이 실행
(key 값과 value1과 일치한다면 문장1, 문장2, 문장3이 모두 실행)
-default 구문이 없는 경우 case 문들의 조건에 맞지 않는 경우 아무것도 처리되지 않음
7. 조건문의 중첩
*너무 중첩시키면 가독성 떨어짐 "coding smell"

8. Math.random()
-Math 클래스에 정의된 난수 발생함수
-0.0 이상 1.0 미만의 double 값을 반환
ex)1~10 범위의 임의의 정수를 얻는 식
int score = (int)(Math.random() * 10)+1;
(0.25678... -*10-> 2.5678... -int-> 2 -+1-> 3)
'CSE > CP1 이론' 카테고리의 다른 글
| CP1_02.변수_1 (0) | 2024.04.24 |
|---|---|
| CP1_03.연산자*미해결포인트 있음 (0) | 2024.04.22 |
| CP1_05.배열(Array)_2_7주차 (0) | 2024.04.20 |
| CP1_05.배열(Array)_6주차 (0) | 2024.04.15 |
| CP1_04.조건문과 반복문_반복문 (0) | 2024.04.15 |