본문 바로가기

Java

Java(5) - 반복문(while 문, do-while 문, for 문)

728x90
반응형

<목차>

1) 반복문

   1-1) 개념 및 유형

   1-2) 유형별 예시코드

2) eclipse 실습 코드

 

 

 

 

1) 반복문

1-1) 개념 및 유형

반복문 : 같은 문장을 반복하여 사용할 경우 반복 조건, 반복 횟수의 제어를 통해 반복 처리

  • while 문
  • do-while 문
  • for 문
  • 예약어 break, continue – 반복문을 제어;

 

<for 문 실행 순서>

(1) 제어변수 i를 초기화

(2) 조건식(i <= 10)이 참(true)이면 {} 안의 코드를 실행시킨 후 증감식을 실행

(3) 조건식이 거짓(false)이 될 때까지 2의 과정 반복

 

 

<반복문을 제어하는 break, continue>

예약어 break, continue는 반복문을 제어할 때 사용되어 진다!

  • break : 해당 반복문을 종료
  • continue : 이후의 문장을 수행하지 않고 처음으로 돌아가 증감식을 수행
for (int i = 1; i <= 10; i++) {
    if (i == 7) {
        break; // 조건에 해당하면 해당 코드를 중단시킴
        continue; // 조건에 해당하면 해당 코드를 skip함
    }
    System.out.println(“안녕” + i);
}

 

 

 

 

1-2) 유형별 예시코드

WhileTest1

package chapter05.loop;

public class WhileTest1 {

	public static void main(String[] args) {
		// while
		int fileSize = 720;
		int download = 0;
		
		while(download < fileSize) {
			download += 120;
			System.out.println(download + "K 다운로드 중....");
		}
		System.out.println("다운로드 완료");

	}

}

 

 

 

 

WhileTest2

package chapter05.loop;

public class WhileTest2 {

	public static void main(String[] args) {
		// 1 ~ 100 합
		int sum = 0;
		int i = 1;
		while (i <= 100) {
			sum = sum + i;
			i++;
		}
		System.out.println(sum);

	}

}

 

 

 

 

DoWhileTest

package chapter05.loop;

import java.util.Scanner;

public class DoWhileTest {

	public static void main(String[] args) {
		// do-while
		Scanner scan = new Scanner(System.in);
		
		int num;
		int sum = 0;
		do {
			System.out.print("숫자 입력(종료는 0): ");
			num = scan.nextInt();
			sum = sum + num;
		} while (num != 0);
		
		System.out.println("총 합계: " + sum);

	}

}

 

 

 

 

BreakTest

package chapter05.loop;

public class BreakTest {

	public static void main(String[] args) {
		// break
		for (int i = 1; i <= 10; i++) {
			if (i == 7)
				break;
			System.out.println("반복회차: " + i);
		}
		
		// exit label
		loop: // 여기서 "loop"는 아래의 전체 이중 for 문이 아니라 이중 for 문 구조에서 가장 바깥의 for 문(int i = 0)을 가리킴을 명시할 것!!
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				if (i == 3 && j == 3)
					break loop;
				System.out.print("0 ");
			}
			System.out.println();
		}
	}

}

 

 

 

 

ContinueTest

package chapter05.loop;

public class ContinueTest {

	public static void main(String[] args) {
		// continue
		for (int i = 1; i <= 10; i++) {
			if (i == 7)
				continue;
			System.out.println("반복회차: " + i);
		}
		
		int sum = 0;
		for (int i = 1; i <= 100; i++) {
			if (i % 2 != 0)
				continue;
			sum += i;
		}
		System.out.println(sum);

	}

}

 

 

 

 

NestLoop

package chapter05.loop;

public class NestLoop {

	public static void main(String[] args) {
		// 중첩 반복문
		for (int i = 2; i <= 9; i++) {
			for (int j = 1; j <= 9; j++) {
				System.out.println(i + " * " + j + " = " + i * j);
			}
			System.out.println();
		}
		
		// 가로 version
		for (int i = 1; i <= 9; i++) {
			for (int j = 2; j <= 9; j++) {
				System.out.print(j + " * " + i + " = " + i * j + "\t");
			}
			System.out.println();
		}

	}

}

 

 

 

 

 

 

2) eclipse 실습 코드

패키지 chapter05.loop

1) Loop_Example02.class

package chapter05.loop;

import java.util.Scanner;

public class Loop_Example02 {

	public static void main(String[] args) {
		/*
		정수 5개를 입력받아 그 합을 출력하시오
		
		출력 결과 : 
		          정수 입력: 1
		          정수 입력: 2
		          정수 입력: 3
		          정수 입력: 4
		          정수 입력: 5
		          15
		*/
		
		Scanner scan = new Scanner(System.in);
		int sum = 0;
		
		for (int i = 1; i <= 5; i++) {
			System.out.print("정수 입력: ");
			int num = scan.nextInt();
			sum += num;
		}
		System.out.println(sum);

	}

}

 

 

 

 

2) Loop_Example03.class

package chapter05.loop;

import java.util.Scanner;

public class Loop_Example03 {

	public static void main(String[] args) {
		/*
		합 구하기
		2개의 정수를 입력받아 입력받은 정수를 포함한
		사이값들의 총합을 구하시오.
		단, 입력 순서에 상관없이 합을 구할 것.
		
		출력 결과 :
		          숫자 입력: 5            숫자 입력: 10
		          숫자 입력: 10           숫자 입력: 5
		          45                    45
		*/
		
		/*
		// 내 version
		Scanner scan = new Scanner(System.in);
		int sum = 0;
		int num = 0;
		int num1 = 0;
		int num2 = 0;
		
		for (int i = 0; i < 2; i++) {
			System.out.print("숫자 입력: ");
			num = scan.nextInt();
			
			if (i == 0) {
				num1 = num;
			}
			
			if (i == 1) {
				num2 = num;
			}
		}
		
		if (num1 > num2) {
			for (int j = num2; j <= num1; j++) {
				sum += j;
			}
			System.out.println(sum);
		} else if (num2 > num1) {
			for (int j = num2; j >= num1; j--) {
				sum += j;
			}
			System.out.println(sum);
		} else {
		    System.out.println("입력하신 두 숫자의 값이 같으니 다시 입력 바랍니다.");
		}
		*/
		
        
		// 교수님 version
		Scanner scan = new Scanner(System.in);
		System.out.print("숫자 입력: ");
		int start = scan.nextInt();
		System.out.print("숫자 입력: ");
		int end = scan.nextInt();
		
		int sum = 0;
		int temp = 0;
		if (start > end) {
			temp = start;
			start = end;
			end = temp;
		}
		
		for (int i = start; i <= end; i++) {
			sum += i;
		}
		System.out.println(sum);

	}

}

 

 

 

 

3) Loop_Example04.class

package chapter05.loop;

public class Loop_Example04 {

	public static void main(String[] args) {
		/*
		1번                2번              3번
		0 0 0 0 0          0 0 0 0 0        0 1 2 3 4
		0 0 0 0 0          1 1 1 1 1        0 1 2 3 4
		0 0 0 0 0          2 2 2 2 2        0 1 2 3 4
		0 0 0 0 0          3 3 3 3 3        0 1 2 3 4
		0 0 0 0 0          4 4 4 4 4        0 1 2 3 4
		*/
		
		// 1번 문제
		System.out.println("1번");
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print("0 ");
			}
			System.out.println();
		}
		
		// 2번 문제
		System.out.println("2번");
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print(i + " ");
			}
			System.out.println();
		}
		
		// 3번 문제
		System.out.println("3번");
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print(j + " ");
			}
			System.out.println();
		}

	}

}