JAVA/자바의 정석

[Java의 정석] 조건문과 반복문

yerinn 2022. 1. 24. 20:13

  1. 조건문 (if, switch) 

 

 1-1. if문 

if (조건식) {
	// 조건식이 참(true)일 때 수행될 문장들을 적는다.
}

if문에 사용되는 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다.

또한 괄호 내 문장이 하나 뿐일때는 괄호를 생략할 수 있다.

 

 1-2. if-else문 

if (조건식) {
	// 조건식이 참일때 수행할 문장
} else {
	// 조건식이 거짓일때 수행할 문장
}

 1-3. if-else if문 

if (조건식1) {
	// 조건식1이 참일때 수행되는 문장
} else if (조건식2) {
	// 조건식2이 참일때 수행되는 문장
} else if (조건식3) {
	// 조건식3이 참일때 수행되는 문장
} else {
	// 위의 어느 조건식도 만족하지 않을때 수행되는 문장 
}

 1-4. switch문 

switch (조건식) {
	case 값1 :
    		// 조건식의 결과가 값1과 같을 경우 수행되는 문장
            // ...
            break;
	case 값2 :
    		// 조건식의 결과가 값2과 같을 경우 수행되는 문장
            // ...
            break;       
    //...
	default:
    		//조건식의 결과와 일치하는 case문이 없을 때 수행되는 문장
            //...
}

회원제 사이트 등에서 등급에 따른 쓰기/읽기권한등을 부여할때 많이 쓰인다.

 

switch문의 제약조건
  1. switch문의 조건식 결과는 정수 또는 문자열이어야 한다.
  2. caxe문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.

 

 

 

 2. 반복문 (for, while, do-while) 

 

 2-1. for문 

for(int i=1 ; i<=5 ; i++) {
	System.out.println("I can do it.");
}

구조는 다음과 같다.

for (초기화 ; 조건식 ; 증감식) {
    //조건이 참일때 수행될 문장
}

증감식에는 i++ / i-- / i+=2 / i+=3 등이 올 수 있으며

두문장을 아래와 같이 하나로 연결해서 쓸 수도 있다.

for (int i=1, j=10 ; i<=10 ; i++, j--) {
	// i는 1부터 10까지 1씩 증가, i는 10부터 1까지 1씩감소
}

또한 모두 생략해 무한반복도 가능하다.

for (;;) { ... }

아래 구문을 이용하면 배열 또는 컬렉션의 모든 요소를 출력할 수 있다.

for (int tmp : arr) {
	System.out.println(tmp);
}

 

 2-2. while문 

int i=1;  //초기화

while(i<10) { // 조건식
	System.out.println(i);
}

while문은 조건식이 생략 불가능하다.

대신 항상 참이 되게하려면 조건식에 true를 넣어주면 된다. ( for(;;) 과 같은 기능을 한다)

 

 2-3. do-while문 

do {
	//조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
} while (조건식) ;

while문의 변형으로 조건식과 블럭을 뒤바꾸어 둔 형대다.

그래서 while문과 반대로 블럭을 먼저 수행한 뒤 조건식을 평가하며,

이에 while과 다르게 do-while 문은 최소한 한번씩은 모두 수행된다.

 

 2-4. break/continue문 

while(true) {
	if (sum > 100)
		break;      //break문이 수행되면 아래 부분은 실행되지 않고 while문을 완전히 빠져나간다.
	++i;
	sum += i;
}
for (int i=0 ; i <= 10 ; i++) {
	if (i%3==0)
		continue;   // 조건식이 참이되어 continue가 수행되면 블럭의 끝으로 이동하고 break와 달리 반복문을 벗어나진 않는다.
	System.out.println(i);
}