Back/JAVA

반복문 - for문, 다중 for문

시월해 2021. 3. 2. 12:51

 *  for 반복문
- 변수의 값을 이용하여 반복 실행하는 명령문.
- 일정 횟수에 대한 반복을 구현할 때 효율적으로 사용되는 반복문.
   즉, 반복문의 횟수를 알고 있는 경우에 사용됨.
- 형식) for(초기식; 조건식; 증감식) {
             반복 실행문;
       }

 

 * 다중 for문
- 반복문 안에 또다른 반복문을 포함하는 문장.
- 반복문이 중첩되어 사용되는 경우.
- 외부 반복문과 내부 반복문 간의 변수 값 변화에 유의해야 함.
- 형식) for(초기식1;조건식1;증감식1) {
             반복실행문1;
             for(초기식2; 조건식2;증감식2;) {
                  반복실행문2;
            }
        }
     

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

 


기본예제) for문을 이용하여 1 ~ 10 까지를 화면에 출력해 보자.

	public static void main(String[] args) {
		
		// for문을 이용하여 1 ~ 10 까지를 화면에 출력해 보자.
		for(int su=1; su<=10; su++) {
			System.out.println("su >>> " + su);
		}

	}

결과


예제1) for문을 이용하여 1~100까지의 홀수이 합과 짝수의 합을 구하자.

	public static void main(String[] args) {
		int odd = 0, even = 0;
		
		for(int i=0; i<=100; i++) {
			if(i%2==1) {
				odd += i;
			} else {
				even += i;
			}
		}
		
		System.out.println("1부터 100까지");
		System.out.println("홀수의 합 >>> " + odd);
		System.out.println("짝수의 합 >>> " + even);

	}

결과


예제2) 신장별 표준 체중 대응표를 만들어 보자. 표시할 신장의 범위(시작값/종료값/증가값)은 정수로 키보드 입력을 받자. (표준 체중 구하는 공식 : (신장 - 100) * 0.9)

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.print("몇 cm부터 표시할까요? : ");
		int start = sc.nextInt();
		
		System.out.print("몇 cm까지 표시할까요? : ");
		int end = sc.nextInt();
		
		System.out.print("몇 cm 단위로 표시할까요? : ");
		int step = sc.nextInt();
		
		System.out.println("신장\t표준체중");
		System.out.println("===============");
		
		for(int i=start; i<=end; i=i+step ) {
			System.out.println(i+"cm\t"+((i-100)*0.9)+"kg");
		}
        
        sc.close();

	}

결과


예제3) 다중 for문을 이용하여 구구단을 화면에 출력해 보자.(세로)

	public static void main(String[] args) {
		
		// 구구단 세로 출력
		for(int i=2; i<=9; i++) { // 구구단에서의 단
			System.out.println("*** "+i+"단 ***");
			for(int j=1; j<=9; j++) { // 구구단에서의 수
				System.out.println(i+" * "+j+" = "+(i*j));
			}
			System.out.println();
		}
		
		System.out.println();
  }

결과


예제4) 다중 for문을 이용하여 구구단을 화면에 출력해 보자.(가로)

	public static void main(String[] args) {

		// 구구단 가로 출력
		for(int k=2; k<=9; k++) {
			System.out.print("*** "+k+"단 ***\t");
		}
		System.out.println();
		
		for(int i=1; i<=9; i++) {
			for(int j=2; j<=9; j++) {
				// System.out.print(j+" * "+i+" = "+(j*i)+"\t");
				System.out.printf("%d * %d = %2d\t", j, i, j*i);
			}
			System.out.println();
		}

	}

결과


예제5) 아래와 같이 별을 찍어보자.

*****

*****

*****

*****

 

*

**

***

****

*****

 

*****

****

***

**

*

public static void main(String[] args) {
		
		for(int i=1; i<=4; i++) {
			for(int j=1; j<=5; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		
		System.out.println();
		
		for(int i=1; i<=5; 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();
		}
		
	}

결과