자바

[java] 반복문 - for문, while문, do-while문

미스터 한뺑 2023. 3. 30. 23:29
반응형

반복문은 어떤 작업이 반복적으로 실행되도록 할때 사용한다. 반복문의 종류는 for문, while문 do-while문이 있다.

for문과 while문은 서로 변환이 가능하기 때문에 반복문을 작성할 때 어느쪽을 선택을 해도 좋지만 for은 반복 횟수를알고 있을 때 주로 사용하고 while문은 조건에 따라 반복할 때 주로 사용한다. do-while문은 while문과 차이점이 조건을 먼저 검사하느냐 나중에 검사하느냐에 차이가 있고 동작방식은 똑같다 .

 

1. for문

더보기

for(1.초기화식; 2.조건식; 3.증감식; ){

     조건식이 true일 경우

     실행문; 

}

프로그램을 작성하다 보면 똑같은 실행문을 반복적으로 실행해야 할 경우가 많이 있다. 다음 코드를 보면 

더보기

int sum =0;

sum = sum+1; 

sum = sum+2; 

sum = sum+3; 

sum = sum+4; 

sum = sum+5;

Sys.out.print(sum); 

이런 코드를 for문으로 쓰면 간결하고 편하게 칠 수 있다.

 

int sum =0;
for(int i=1; i<=100; i++){
	sum = sum+i;
}
System.out.println(sum)

100개의 실행문을 3줄만에 압축한 것이다. 반복문은 한 번 작성된 실행문을  여러 번 반복 실행해주기 때문에 코드를 줄여 간결하게 만들어준다. 코드가 간결하면 개발 시간도 줄일 수 있고, 에러가 날 확률도 줄어든다.

 

예시)

public static void main(String[] args) {
	 for(int i=1; i<=10; i++) {
		 System.out.println(i);
	 }
  }

public class DenLogicOperator {

	public static void main(String[] args) {
	 for(int i=0, j=1; i<=10&&j<=20; i++,j--) {
		 System.out.println("i의 값:"+i);
		 System.out.println("j의 값:"+j);
	 }
  }

초기값, 조건식, 증감식 모두 1개 이상을 쓸 수가있다 .  

 

2. 중첩 for문

for문은 또 다른 for문을 내포할수 있는데 이것을 중첨 for문이라 한다. 이 경우 바깥쪽 for문이 한 번 실행할 때마다 중첩된 for문은 지정된 횟수만큼 반복해서 돌다가 다시 바깥쪽 for문을 실행한다.

 

예시) 간단한 구구단 만들어보기

public static void main(String[] args) {
	 for(int m=2; m<=9; m++ ) {
		 System.out.println("***"+m+"단"+"***");
		 for (int i = 1; i<=9; i++) {
			 System.out.println(m+"X"+i+"="+m*i);
		 }
	 }

 

3. while문

for문이 정해진 횟수만큼 반복한다면, while문은 조건식이 true일 경우에 계속 해서 반복한다.

조건식에는 비교 또는 논리 연산식이 주로 오는데, 조건식이 false가 되면 반복 행위를 멈추고 while을 종료한다.

 

예시) 1부터 10까지 출력하기

public static void main(String[] args) {
	 int i = 1;
	 
		while(i<=10) {
			System.out.println(i);
			i++;
		}
  }

 

예시2)1부터 100까지 합을 출력

 

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

만약  조건식이계속 true이면 무한루프로 실행이된다. 그것을 방지하기 위해 마지막에 break문을 줘서 실행을 멈춘다.

 

 

4. do-while문

조건식에 의해 반복 실행한다는 점에서는 while문과 동일하다. while문은 시작할 때부터 조건식을 검사하여 블록 내부를 실행할지 결정하지만, 경우에 따라서는 블록 내부의 실행문을 우선 실행하고 실행결과에 따라서 반복 실행을 계속할지 결정할 수도 있다.

 

예시)  1~100까지의 합을 구하라

public static void main(String[] args) {
	 int i = 1;
	 int sum = 0;
	 
	 do {sum+=i;i++;} //실행문
		while(i<=100); // 조건식
		System.out.println("1~100까지의 합:"+sum);
  }

 

5.break문

반복문을 사용할 때 실행을 멈추는 문을 말한다. 

 

예시) 무작위로 6이 나올때까지 실행하는 문

public static void main(String[] args) {
		while(true) {
			int num = (int) (Math.random()*6)+1;
			System.out.println(num);
			if(num ==6) {
				break;
			}
		}
		System.out.println("프로그램 종료");

만약에 반복문이 중첩되어 있는 경우 break문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료하지 않는다.

 

6.continue문

반복문인 for, while문에서만 사용하는 문이다. 블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while문,

d0-while문의 조건식으로 이동한다.특정한 조건을 만족하는 경우에 continue문을 실행해서 그 이후의 문장을 실행하지 않고 다음 반복으로 넘어가는 역활을 한다.

 

public static void main(String[] args) {
		for(int i=1; i<=10; i++) {
			if(i%2!=0) {
				continue; //홀수인경우는 건너뛰고 다시 반복문 초기로 돌아간다
			}
			System.out.println(i);
		}

 

반응형