1. 반복문 - for, while , do-while

- 문장 또는 문장들을 반복해서 수행할 때 사용

- 조건식과 수행할 블럭{} 또는 문장으로 구성

- 반복회수가 중요한 경우에 for문을 그 외에는 while문을 사용한다.

- for문과 while문은 서로 변경가능하다.

- do-while문은 while문의 변형으로 블럭{}이 최소한 한번은 수행될 것을 보장한다.


2. for문

- 초기화, 조건식, 증감식, 그리고 수행할 블럭{} 또는 문장으로 구성

- for문 안에 또 다른 for문을 포함시킬 수 있다.

- for문의 중첩횟수에는 거의 제한이 없다.


3. while문

- 조건식과 수행할 블럭{} 또는 문장으로 구성

- while문 안에 또 다른 while문을 포함시킬 수 있다.

- while문의 중첩횟수에는 거의 제한이 없다.


4. do - while문

- while문의 변형, 블럭{}을 먼저 수행한 다음에 조건식을 계산한다.

- 블럭{}이 최소한 1번 이상 수행될 것을 보장한다.


5. break

- 자신이 포함된 하나의 반복문 또는 switch문을 빠져나온다.

- 주로 if 문과 함께 사용해서 특정 조건을 만족하면 반복문을 벗어나게 한다.


6. continue

- 자신이 포함된 반복문의 끝으로 이동한다. (다음 반복으로 넘어간다.)

- continue문 이후의 문장들은 수행되지 않는다.


7. 이름이 붙은 반복문과 break, continue

- 반복문 앞에 이름을 붙이고, 그이름을 break, continue와 같이 사용함으로써 

- 둘 이상의 반복문을 벗어나거나 반복을 건너뛰는 것이 가능하다.


/*
 * 반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용 된다.
 * for문은 주로 반복횟수를 알고 있을 때, 카운터가 반복문 내에 필요한 경우에 사용되고,
 * 단순히 조건에 다른 반복만이 필요 한 경우 while 문이 사용된다.
 */

package com.tistory.gangzzang;

import java.util.Random;
import java.util.Scanner;

public class ForWhile {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		// 1. for 문 - (초기화값;조건식;증감식) 조건식이 true 일 때 수행 될 문장들을 {} 안에 적는다.
		System.out.println(" ### 제곱 승을 구하자 ### ");

		System.out.print("곱할 수를 입력하세요 : ");
		int num1 = sc.nextInt();
		
		System.out.print("곱할 횟수를 입력하세요 : ");
		int num2 = sc.nextInt();
		
		int result = 1; // 결과를 출력할 변수 0으로 초기화하면 곱을 할때 계속 0이되서 1로 초기화 한다.
		
		for (int i = 0; i < num2; i++) { // 곱할 횟수 num2만큼 곱하는 반복문
			result = result * num1; // 결과값 * 입력값을 반복곱해서 결과값 result에 저장한다.
		} // for
		
		System.out.println("입력하신 " + num1 + "의 " + num2 + "제곱승은 " + result + "입니다.");
		System.out.println();

		
		
		// 2. while 문 - (조건식) 조건식의 연산 결과가 true 일 때 수행 될 문장들을 {} 안에 적는다.
		System.out.println(" ### 제곱 승을 구하자 ### ");
	
		System.out.print("곱할 수를 입력하세요 : ");
		int num3 = sc.nextInt();
		
		System.out.print("곱할 횟수를 입력하세요 : ");
		int num4 = sc.nextInt();
	
		int result2 = 1; // 결과를 출력할 변수 0으로 초기화하면 곱을 할때 계속 0이되서 1로 초기화 한다.
	
		int i2 = 0; // 곱할 횟수의 시작 0, 1, 2 ~ num2 보다 작을 때 까지
	
		while (i2 < num2) { // 곱할 횟수 num2만큼 곱하는 반복문
			result2 = result2 * num3; // 결과값 * 입력값을 반복곱해서 결과값 result에 저장한다.
			i2++;
		} // while
	
		System.out.println("입력하신 " + num3 + "의 " + num4 + "제곱승은 " + result2 + "입니다.");
		System.out.println();
		
		
		
		// 3. do while 문 - while문의 변형으로 {} 먼저 수행한 후에 조건식을 판단한다는 것이 while 과의 차이점이다. 최소한 한번의 수행을 보장한다.
		System.out.println(" ### 제곱 승을 구하자 ### ");
		
		System.out.print("곱할 수를 입력하세요 : ");
		int num5 = sc.nextInt();
		
		System.out.print("곱할 횟수를 입력하세요 : ");
		int num6 = sc.nextInt();
		
		int result3 = 1; // 결과를 출력할 변수 0으로 초기화하면 곱을 할때 계속 0이되서 1로 초기화 한다.
		
		int i3 = 0; // 곱할 횟수의 시작 0, 1, 2 ~ num2 보다 작을 때 까지
		
		do {
			result3 = result3 * num5; // 결과값 * 입력값을 반복곱해서 결과값 result에 저장한다.
			i3++;
		} while (i3 < num5); // 곱할 횟수 num2만큼 곱하는 반복문
		
		System.out.println("입력하신 " + num5 + "의 " + num6 + "제곱승은 " + result3 + "입니다.");
		System.out.println();
		
		
		// 4. break 문 - 현재 위치에서 가장 가까운 반복문을 벗어나는데 사용한다.
		Random ran = new Random();		
		System.out.println(" ### 1부터 100까지의 수 중 컴퓨터가 생각한 수를 알아 맞춰 보자 ### \n");
		
		int random = (ran.nextInt() >>> 1) % 100 + 1; 
		int count = 0;
		
		while (true) { 
			count++;			
			System.out.print("수를 입력하세요 : ");
			int num = sc.nextInt();
			
			if (num == random) { 
				System.out.println("축하합니다. 정답입니다.");
				break;
			} else if (num > random) {
				System.out.println("틀렸습니다. 더 작은 수를 입력하세요!");
			} else {
				System.out.println("틀렸습니다. 더 큰 수를 입력하세요!");
			} // if
		} // while
		
		System.out.println("총 " + count + "회 시도에 성공하셨습니다.");
		System.out.println();
		
		
		// 5. continue 문 - 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
		for (int i = 0; i < 10; i++) {
			if (i == 4) {
				continue; // break 와 달리 탈출이 아닌 4만 건너뛰는 점프 개념
			} // if
			System.out.println("hello " + i);
		} // for
		System.out.println("종료");
		
	} // main

} // ForWhile


+ Recent posts