java & comment 3일차 강의

김용진·2023년 7월 4일
0

....조건문 계속

1. 조건문

1-1. switch

- 변수 값에 대한 경우의 수를 처리하는 switch문
- switch문은 하나의 변수(기준값)에 대한 여러가지 case를 정의하는 구문이다.
- if문은 조건에 식(비교식, 부등식)이 사용될 수 있지만,
switch문은 분기조건에 반드시 일치하는 "값"에 대해서만 처리가능하다.

1-2. switch 사용 예시

switch( 기준값 ){
	case 값1:
		.... 실행할 구문 ....
		break;
	case 값2:
		.... 실행할 구문 ....
		break;
	case 값n:
		.... 실행할 구문 ....
		break;
	default:
		모든 조건이 충족되지 않았을때 실행할 구문...
		break;

}

2. 삼항 연산자

	if( 조건식 ){
		....
	} esle{
		....
	}

- 단순한 if문일 경우 라인수를 획기적으로 줄여주는 방식이 삼항 연산자이다.

	조건식 ? true일때 값 or 연산식 : false일때 값 or 연산식

3. 반복문

3-1. for문

- for문은 사람이 직접 처리하기에 부담스러운 반복적인 작업을 처리하기에 매우 용이하다.

	for(초기식; 조건식; 증감식){
	      (1)   (2)(5)  (4)
		...반복적으로 동작할 구문...
		           (3)
	}

3-2. 문법설명

- (1) : 최초로 초기식을 설정한다.
- (2) : 최초식을 설정한 다음에는 조건식을 판단
- (3) : 만약 조건식이 참이라면, 반복적으로 동작할 구문을 1회 수행한다.
- (4) : 반복 구문을 수행한 후, 증감식으로 이동한다.
- (5) : 증감식을 수행한 후, 다시 조건식으로 이동한다. 여전히 조건식이 
참일 경우에는 반복수행을 처리하고, 그렇지 않다면 for문을 종료한다.

3-3. while문

- while문 역시 for문과 마찬가지로 반복적인 처리를 수행하는 문법이다.
- for문은 초기식, 조건식, 증감식을 모두 내장하는 반면, while문은 조건식
만을 내장하기 때문에 초기식과 증감식을 외부에 따로 정의해 주어야 한다.


	초기식;
	  (1)
	while( 조건식 ) {
		(2)(5)
			....	반복적으로 동작할 구문 ....
				       (3)
		증감식(4)
	}

3-4. do ~ while

- 조건의 판별을 나중에 수행하는 반복문 형태
- 초기식을 설정한 후 do{...}안의 문장을 우선적으로 1회 실행하고 조건을
판별하므로, 조건이 참이 아니더라도 최소 1회는 실행된다.

	초기식;

	do{
	...반복적으로 동작할 구문...
	증감식
	} while(조건식);

3-5. while문과 do~while문 차이점 이해하기

3-6. 무한 루프

- 증감식이 설정되지 않거나, 증감식이 수행되더라도 조건식이 거짓이 
되지않는 형태
- 조건식이 항상 참이므로, 반복문이 종료되지 않는다.
- 프로그램이 pc의 자원을 매우 많이 사용하게 되므로, 시스템 다운을 
발생시킬 수 있다.

4. 변수의 스코프(=변수의 범위)

4-1. 자신보다 하위 블록으로는 침투할 수 있다.

int num = 100;
if( num == 100 ){
	System.out.println(num);
}	

int num = 100;
for( int i = 0; i<10; i++){
	System.out.println(num+i);
}

4-2. 자신이 선언된 블록 밖으로는 빠져나갈 수 없다.

int num = 100;
if(num == 100){
	int result = num + 100;
}

// result가 if블록 안에서 생성되었으므로 사용불가
System.out.println(result);

//이때 result 는 if문 안에 만들어진 변수이므로, 상위영역인 코드에서
불러들일 수 없다.

암묵적 형변환도 같은 이치로 작은것에서 큰것으로 변환이 되어도 반대로는 안됨.

for( int i=0; i<10; i++){
	....
}
//i 가 for문을 위한 괄호 안에서 사용되었으므로 사용불가.
//만일 사용하기위함이라면 for문 밖 class상위에 변수 선언해주면 된다.
System.out.println(i);

4-3. 블록안에서 선언된 변수는 블록 밖에서 존재하는 동일한 이름의 변수와는 이름만 동일할 뿐, 다른 값으로 인식된다.

int target = 100;
if(target == 100){
	int num = target+100;
} esle{
	int num = target-100;
}
profile
메모리폼

0개의 댓글