본문 바로가기

Programming/Java

[JAVA] 반복문 for문

앞서 while문에 대해 배웠다

for문은 while문보다 개인적으로 더 표현하기 쉬운 반복문이다.

우선 for문을 만나보겠다

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

수행할 소스코드;

}

이런 식으로 쓸 수 있다.

for문은 while문과 다르게 초기화, 조건식, 증감식을 동시에 선언할 수 있다는 장점이 있다.

 

while문을 제대로 이해하셨다면 for문은 어렵지 않을 거다

		Scanner sc =  new Scanner(System.in);

		System.out.print("정수1: ");
		int num1 = sc.nextInt();
		System.out.print("정수2: ");
		int num2 = sc.nextInt();

		if(num1>num2) {
			int tmp=num1;
			num1=num2;
			num2=tmp;
		}
		int sum = 0;
		int total=0;
		for(int i =num1; i<=num2; i++) {
			sum +=  i;
			total++; 
		}

		System.out.println("합: "+sum);
		double avg = sum*1/total;
		System.out.println("평균: "+avg);

정수 2개를 입력받아 두 정수의 합과 평균을 구하는 예제이다

중간에 if문은 num2가 num1보다 작을 때 num2를 num1으로  이동해주는 교체 문제이다

tmp를 선언해 주었는데 예를 들어보겠다

2개의 컵이 있다 그 컵에는 물이 가득 담겨 있는데 1번 컵의 내용물을 2번 컵의 내용물로 옮기려고 한다.

그러려면 하나의 컵이 더 필요하다 그래서  tmp라는 변수를 하나 생성해준 것이다.

이해가 안 간다면 컵에 물을 채우고 한번 해봐라

 

	for(int i=2; i<=9; i++) {
			for(int j=1; j<=9; j++) {
				System.out.println(i+"*"+j+"="+i*j);
			}
			System.out.println("-------");
		}

구구단 출력 예제다 많이 접해보셨다고 생각해서 설명은 생략하겠다

	for(int i=0; i<5; i++) {
			for(int j=0; j<5-i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}

for문 안에 for문을 중첩 for문이라고 하는데

이 예제는 *을 출력하는 예제다

빨리 습득하는 중요한 방법은 코드를 작성하고 그걸 가지고 이리 바꿔보고 저리도 바꿔보고 

논다는 느낌으로 해봐라 그러면 금방 이해될 것이다.