본문 바로가기
자바 풀스택 공부

Day 9.

by seung_nari 2022. 1. 12.

for 문

for문은 반복 횟수를 알고 있을 때 적합합니다.

구조가 조금 복잡하지만 직관적이라 오히려 이해하기 쉽습니다.

 

//     1부터    5까지    1씩증가
for (int i = 1; i <= 5; i++) { 
	System.out.println("I can do it.");
}

 

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

 

제일 먼저 '초기화'가 수행되고, 그 이후부터는 조건식이 참인 동안 '조건식 > 수행될 문장 > 증감식'의 순서로 계속 반복합니다. 그러다가 조건식이 거짓이 되면, for문 전체를 빠져나가게 됩니다.

 

초기화

반복문에 사용될 변수를 초기화하는 부분이며 처음에 한번만 수행됩니다.

보통 변수 하나로 for문을 제어하지만, 둘 이상의 변수가 필요할 때는 아래와 같이 콤마','를 구분자로 변수를 초기화하면 됩니다.

 

for (int i = 1, j = 0; i <= 10; i++) { . . . }
//      --------------

 

조건식

조건식의 값이 참(true)이면 반복을 계속하고, 거짓(false)이면 반복을 중단하고 for문을 벗어납니다.

for의 뜻이 '~하는 동안'이므로 조건식이 '참인 동안' 반복을 계속한다고 생각하면 쉽습니다.

 

for (int i = 1; i <= 10; i++) { . . . }
//              -------

 

증감식

반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식입니다.

매 반복마다 변수의 값이 증감식에 의해서 점진적으로 변하다가 결국 조건식이 거짓이 되어 for문을 벗어나게 됩니다.

변수의 값을 1씩 증가시키는 연산자 '++'이 증감식에 주로 사용되지만, 다음과 같이 다양한 연산자들로 작성 가능합니다.

 

for (int i = 1; i <= 10; i++)	{ . . . }	// 1부터 10까지 1씩 증가
for (int i = 10; i >= 1; i--)	{ . . . }	// 10부터 1까지 1씩 감소
for (int i = 1; i <= 10; i+=2)	{ . . . }	// 1부터 10까지 2씩 증가
for (int i = 1; i <= 10; i*=3)	{ . . . }	// 1부터 10까지 3배씩 증가

 


public class Rhombus {
	public static void main(String[] args) {
		for(int i = 0; i < 2; i++) {
			for(int j = 0; j < 5; j++) {
				boolean b = (j + i <= 1) || (j - i >= 3) ;
				if(!b) {
					System.out.print("*");
				}
				else {
					System.out.print(" ");
				}
			}
			System.out.println();
		}
		for(int i = 2; i < 5; i++) {
			for(int j = 0; j < 5; j++) {
				boolean b = (i-j >= 3) || (i + j >= 7);
				if(!b) {
					System.out.print("*");
				}
				else {
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

 


for 문과 while 문의 비교

1부터 10까지의 정수를 순서대로 출력하는 for문을 while문으로 변경하면 아래와 같다.

 

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

while (i <= 10) {
	System.out.println(i);
    i++;
}

 

위의 두 코드는 완전히 동일합니다.

for문은 초기화, 조건식, 증감식을 한 곳에 모아 놓은 것일 뿐, while문과 다르지 않습니다.

그래서 for문이 더 간결하고 알아보기 쉽습니다.

만일 초기화나 증감식이 필요하지 않는 경우라면, while문이 더 적합할 것입니다.

 

for문보다 while문이 적합한 예제

public class FlowEx23 {
	public static void main(String[] args) {
		int i = 5;
		
		while(i-- !=0) {
			System.out.println(i + " - I can do it.");
			
		}
	}
}

'자바 풀스택 공부' 카테고리의 다른 글

Day 11.  (0) 2022.01.14
Day 10.  (0) 2022.01.12
Day 8.  (0) 2022.01.10
Day 7.  (0) 2022.01.10
Day 6.  (0) 2022.01.06

댓글