[자바] java 반복문

1. 반복문 - while문

조건이 참(true)인 동안 반복수행하기

  • 주어진 조건에 맞는 동안(true) 지정된 수행문을 반복적으로 수행하는 제어문

  • 조건이 맞지 않으면 반복하던 수행을 멈추게 됨

  • 조건은 주로 반복 횟수나 값의 비교의 결과에 따라 true, false 판단 됨

  • 예) 달리는 자동차, 일정 횟수 만큼 돌아가는 나사못, 특정 온도까지 가동되는 에어컨등

while문

  • 수행문을 수행하기 전 조건을 체크하고 그 조건의 결과가 true인 동안 반복 수행

while

while 문 예제

  • 1부터 10까지 더하여 그 결과를 출력해 보자
package ch17;

public class WhileTest {

	public static void main(String[] args) {

		int num = 1;
		int sum  = 0;

		while( num <= 10) {

			sum += num;
			num++;
		}

		System.out.println(sum);
		System.out.println(num);
	}

}

무한 반복 할 때

   while(true){

       .......
   }

2. 반복문 - do-while문

조건과 상관 없이 한번은 수행문을 수행

  • while문은 조건을 먼저 체크하고 반복 수행이 된다면, do-while은 조건과 상관 없이 수행을 한 번 하고나서 조건을 체크

dowhile

  • 조건이 맞지 않으면(true 가 아니면) 더 이상 수행하지 않음

do-while 예제

  • 입력받는 모든 숫자의 합을 구하는 예제 단, 입력이 0이 되면 반복을 그만하고 합을 출력

package ch18;

import java.util.Scanner;

public class DowhileTest {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		int input;
		int sum = 0;

		do {
			input = scanner.nextInt();
			sum += input;

		}while(input != 0);


		System.out.println(sum);
	}

}


3. 반복문 - for 문

for문의 수행 순서

for

for문 예제 (while과 비교)

  • 1부터 10까지 더한 결과를 출력하세요 ``` package ch19;

public class ForTest {

public static void main(String[] args) {

	int count =1;
	int sum = 0;

	for( int i = 0 ; i<10; i++, count++) {  //10번
		sum += count;
		//count++;
	}
	System.out.println(sum);


	int num = 1;
	int total = 0;

	while( num <= 10) {
		total += num;
		num++;
	}
	System.out.println(total);
} }

## 각 반복문은 주로 언제 사용하나요?


![loop](/assets/loop.png)

## for문의 문장들은 생략가능 합니다.

- 초기화식 생략 : 이미 이전에 값이 초기화 되어 for 내부에서 값을 지정할 필요가 없는 경우


   ![for1](/assets/for1_9ayvswpqj.PNG)

- 조건식 생략 : 반복 수행에 대한 조건이 수행문 내부에 있는 경우

   ![for2](/assets/for2.PNG)

- 증감식 생략 : 증감식에 대한 연산이 복잡하거나 다른 변수의 연산 결과값에 결정되는 경우

   ![for3](/assets/for3.PNG)

- 무한 반복

   ![for4](/assets/for4.PNG)

## 참고 하세요

    i+1 과 i++은 다릅니다.
    i+1 자체는 i 값이 증가되지 않습니다. 증가하기 위해서는 대입연산자를 써야합니다.
    하지만 i++은 i = i+1, i+=1 과 동일한 의미입니다.
    따라서 값을 1씩 증가하려고 한다면 i++을 사용하세요

-------


# 4. 반복문이 여러 번 포개진 중첩 반복문

## 중첩 반복문이란?

- 반복문 내부에 또 다른 반복문이 있음

- 여러 겹으로 반복문을 겹쳐서 구현 가능 (단 수행시간에 문제가 발생할 수 있음)

- 외부 반복문과 내부 반복문 간의 변수 값 변화에 유의 하며 구현하여야 함


## 구구단을 for와 while로 구현해 보자

package ch20;

public class NestedLoopTest {

public static void main(String[] args) {
	int dan = 2;
	int count = 1;

	for( dan = 2; dan <= 9; dan++) {

		for(count = 1; count <=9; count++) {

			System.out.println( dan + "X" + count + "=" + dan * count);
		}
		System.out.println();
	}

	dan = 2;
	while( dan <= 9 ) {
		count = 1;
		while (count <= 9) {

			System.out.println( dan + "X" + count + "=" + dan * count);
			count++;

		}
		dan++;
		System.out.println();
	}
} }

------


# 5. 중간에 멈추는 break문, 무시하고 계속 진행하는 continue문

## break문 사용하기

- 감싸고 있는 제어문의 블록을 빠져 나오는 기능 (switch문 에서도 사용)

- 반복문에서는 주로 조건문(if)와 같이 사용하여 조건에 해당되는 경우 반복 수행을 멈추고 반복문 외부로 수행이 이동

- 여러 반복문이 중첩되어 있는 경우엔 break 문이 포함되어 있는 반복문만 빠져 나옴


## break문 예제

- 1부터 숫자를 더하여 100이 넘는 순간의 그 숫자와 합을 출력하세요

package ch21;

public class BreakTest {

public static void main(String[] args) {

	int sum = 0;
	int num;
	for( num = 1; ; num++) {

		sum += num;
		if( sum >= 100)	break;
	}

	System.out.println(sum);
	System.out.println(num);
} } ```

continue문 사용하기

  • 반복문 내부에서 조건문(if)와 같이 사용하며, 조건이 맞는 경우(true 이면) 이후 반복문 블럭 내부의 다른 수행문들을 수행하지 않음

continue문 예제

  • 1부터 100까지 숫자 중 3의 배수를 출력하세요
package ch21;

public class ContinueTest {

	public static void main(String[] args) {
		int num;
		for( num = 1; num <= 100; num++) {

			if( (num % 3) != 0) continue;

			System.out.println(num);

		}
	}
}







© 2021.03. by yacho

Powered by github