본문 바로가기
Back-End/Java

[Java] 조건문 for문

by 찐코딩 2021. 8. 8.

for 반복문

  - 변수의 값을 이용하여 반복 실행하는 명령문
  - 일정 횟수에 대한 반복을 구현할 때 효율적으로 사용되는 반복문.
  - 즉, 반복문의 횟수를 알고 있는 경우에 자주 사용됨

 

   형식)

for(초기식; 조건식; 증감식) {
   반복 실행문;
}

 

[for 반복문 실행 순서]

 1. 초기식 : 처음에 한번만 실행됨(변수 선언)
 2. 조건식 : 조건이 참이면 반복, 거짓이면 탈출(exit)
 3. 실행문 : 조건이 참일 때 반복 대상인 반복 실행문이 실행됨.
 4. 증감식 : 변수를 대상으로 증가(++) 또는 감소(--)

 

 

다중 for 반복문

 - 반복문 안에 또 다른 반복문을 포함하는 문장
 - 반복문이 중첩되어 사용되는 경우.
 - 외부 반복문과 내부 반복문 간의 변수의 값 변화에 유의해야 함.
 
 형식)

for(초기식1; 조건식1; 증감식1) {
  	반복 실행문1;
  	for(초기식2; 조건식2; 증감식2) {
  	반복 실행문2;
 	 }
  }

 

 


 

예제1)

for 반복문을 이용하여 1 ~ 10까지 출력해 보자.

public static void main(String[] args) {
	for(int su=1; su<=10; su++) {
		System.out.println("su >>> " + su);
	}
}

 

 


예제2) 

아래와 같이 별을 찍어보자

 

public static void main(String[] args) {

		for(int i=1; i<=4; i++) {  // 행
			for(int j=1; j<6; j++) {  //열
				System.out.print("*");
			}
			System.out.println();
		}		
        
		System.out.println();
		
		//올라가는 별 찍기
		for(int i=1; i<6; i++) {  // 행
			for(int j=1; j<=i; j++) { //열
				System.out.print("*");
			}
			System.out.println();
		}		
        
		System.out.println();
		
		//내려가는 별 찍기
		for(int i=5; i>=1; i--) { //행
			for(int j=1; j<=i; j++) { //열
				System.out.print("*");
			}
			System.out.println();
		}
	}

*****

*****

*****

*****

바깥에 있는 for문이 행,

안쪽에 있는 for문이 열 이라고 생각하면 된다

 

먼저 바깥에 있는 for문의 조건문이 2개 인 것을 볼 수 있다 (1, 2) 

바깥 for문의 첫번째 반복 실행문인 안쪽 for문(1)을 보면,

j 값이 6을 초과하기 전까지

print("*")을 수행하고, j이 1씩 증가됨으로써 총 5번 수행하고 for문을 탈출.

==> ***** (별이 한줄에 5개 찍힘)

다음으로 두번째 반복 실행문인 줄바꿈(System.out.println();)(2)을 통해 열이 바뀌게 된다.

그리고 다음으로 i값이 1 증가하는 것이다.

이 동작을 i 값이 4를 초과하기 전까지 계속 반복. (==>즉, '*****'\n 을 4번 반복)

 

 

 

위와 마찬가지로, 바깥 for문이 행, 안쪽 for문이 열이라고 생각하면 된다

i가 1일 때

첫번쨰 반복 실행문인 안쪽 for문(1)의 반복 실행문인 print(*)를 i(=1)보다 작거나 같을때까지 실행 후 for문 탈출

==> *

두번째 반복 실행문인 println을 만나 줄 바뀜(열 바뀜)

i++되어 i=2

다시 첫번째 반복 실행문(1) 수행

i가 2가되었기에 print(*)을 2번 반복하고 for문 탈출

두번째 반복실행문(2) 수행

.

.

이런식으로 반복하면 아래로 갈수록 별이 한개씩 증가하는 결과창이 나온다.

 

한개씩 줄어드는 별 출력도 위와 동일함

 


예제3)

다중 for문을 이용하여 구구단을 출력해보자.

public static void main(String[] args) {

	// 출력 형태 ex 2*1=2, 2*2=4 ...
		for(int i=2; i<=9; i++) {   //구구단에서의 단
			System.out.print("***"+i+"단"+"***\t");
			for(int j=1; j<=9; j++) {  //구구단에서의 수
				System.out.printf("%d * %d = %2d\t",i, j, (i*j));
			}
		System.out.println();
		}
        
	System.out.println();
	System.out.println();
		
	//출력 형태 ex. 2*1=2, 3*1=3 ...
		for(int k=2; k<10; k++) {
		System.out.print("*** "+k+"단 ***\t");
		}
	System.out.println();
		for(int n=1; n<=9; n++) {   //구구단에서의 수 
			for(int m=2; m<=9; m++) { //구구단에서의 단
				System.out.printf("%d * %d = %2d\t",m, n, (m*n));
			}
			System.out.println();
		}
	}

 

 

'Back-End > Java' 카테고리의 다른 글

[Java] 배열(array)  (0) 2021.08.11
[Java] 기타보조제어문(continue, break)  (0) 2021.08.11
[Java] 반복문 while, do while  (0) 2021.08.08
[Java] 조건문 switch~case문  (0) 2021.08.08
[Java] 조건문 if-else문, if-else if문  (0) 2021.08.08

댓글