JAVA - 반복 for 문, 예제(2022-07-12)

2022. 7. 12. 22:523층 1구역 - 개발의 장/JAVA

1. for문 이란?

2. 기본예제

package loop_for_0712;

public class Ex01 {
	public static void main(String[] args) {
		int i;
		for (i = 0; i < 5; i++) {
			System.out.println("i : " + i);
		}
		System.out.println("for 종료 후 i : " + i);
		for (i = 5; i > 0; i--) {
			System.out.print(i + " ");
		}
	}
}

 

 

 

 

 

 

 

3. for문으로 min~max의 합계 구하는 예제

package loop_for_0712;

public class Ex02 {
	public static void main(String[] args) {
		int i, total = 0;
		for (i = 1; i <= 100; i++) {
			total += i;
		}
		System.out.println("1~100 합계 : " + total);
		total = 0;
		for (i = 222; i <= 789; i++) {
			total += i;
		}
		System.out.println("222~789 합계 : " + total);
		
		total = 0;
		for (i = 1; i <= 100; i+=2) {
			total += i;
		}
		System.out.println("1~100 홀수 합계 : " + total);
		total = 0;
		for (i = 2; i <= 100; i+=2) {
			total += i;
		}
		System.out.println("1~100 짝수 합계 : " + total);
	}
}

 

 

 

 

 

 

 

 

 

4. for문으로 min~max 홀, 짝 합계 구하는 다른 방법

package loop_for_0712;

public class Ex03 {
	public static void main(String[] args) {
		int i, oddTotal, evenTotal;
	
		oddTotal = 0;
		evenTotal = 0;
		for (i = 1; i <= 100; i++) {
			if(i % 2 == 1)
				oddTotal += i;
			else
				evenTotal = evenTotal + i;
		}
	
		System.out.println("1~100 홀수 합계 : " + oddTotal);
		System.out.println("1~100 짝수 합계 : " + evenTotal);
		
	}
}

5.for(초기식;조건식;증감식) {}

for문을 나타내기 위해선 for(초기식;조건식;증감식) { } 이런 식으로 나타낸다.

그러면 초기식과 증감식을 밖으로 빼낼 순 없을까?

 

된다.

 

 

package loop_for_0712;

import java.util.Scanner;

public class Ex05 {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);

		System.out.print("반복 횟수 : ");
		int repeat = in.nextInt();
		int i = 1; // for 시작 전에 초기식
		for (; i <= repeat;) {
			System.out.println(i + "번 반복");
			i++; // for문 종속문장에 증감식
		}

	}
}

그러면? 조건식을 빼낼 수도 있지 않을까?

가능하다.

단, 조건식을 넣어줄만한 소재가 필요한데 이전 시간에 if와 switch문의 break;를 써보자.

 

package loop_for_0712;

public class Ex06 {
	public static void main(String[] args) {
		for(int i = 1; ;i++) {
			System.out.println(i +"번째 출력");
			if(i == 10000)
				break;
		}

	}
}

위 조건은 초기식 : int i = 1일 때,  증감식 : i++, i는 1씩 증감하고, 이를 반복한다.

if만약(i==10000) i가 10000이 될 때, break; 깨고 탈출해라(종료해라.)

그러면 1부터 10000까지 반복하고 반복을 종료한다.

 

그러면 break; 를 빼면 어떻게 될까?

i가 10000을 도달했지만 출구가 없기 때문에 다시 돌아가서 10001부터 무한대로 반복을 시행한다.