본문 바로가기
CSE/CP1 이론

04.조건문과 반복문_조건문

by 0/0 2024. 4. 20.

목차

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 문의 값으로 변수 사용 불가(리터럴, 상수만 가능)

*리터럴? 상수? 상수는 변하지 않는 변수를 의미(메모리 위치), 리터럴은 변수의 값이 변하지 않는 데이터(메모리 위치 안의 값)

switch~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"가 출력된다.

 

아래와 같이 쓸 수도 있다.

switch~case문 예제

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