티스토리 뷰

반복문 이란? 어떤 작업이 반복적으로 수행되도록 할 때 사용하는 구문입니다.


for문

while문 

do~while문 

for(초기화; 조건식 ; 증감식) 
          문장;
            :
            :
}


=> 조건식이 true일 때 문장을 수행

while(조건식) {
     문장;
       :
       :
}


=> 조건식이 true일 때 문장을 수행




do{
문장;
 :
 :
}while(조건식);

=> 문장을 한번 수행하고 

    조건식이 true 일 때 

    다시 do 부터 수행하여 

    문장을 수행 



1. for문 


초기화를 수행하고 조건식을 만족하면 문장들을 수행하고, 증감식으로 넘어갑니다.


초기화 → 조건식 → 수행할 문장 → 증감식

                   ↑                                                ↓

                     ← ← ← ← ← ← ← ← ← ← 

 

증감식을 마치고 조건식에 도달하였을때 조건식에 해당한다면 반복적으로 수행하며

조건식에 해당하지 않는다면 for문을 벗어나게 됩니다.


for문 예제 

설명 

for( ; ; ) { 
  수행할 문장들
}

조건식이 없기 때문에 무한루프

(for문에서 벗어나지 못한다)에 빠지게 됩니다. 

for( int i = 0; i<10; i++){
   수행할 문장들
}

i=0으로 초기화 시킨후 i가 10보다 작을때 까지 문장을 수행하며 문장이 수행되면 i를 1 증가 시켜서 반복합니다.

i가 9까지 수행하며 10이 되면 

조건식에 의해 for문을 벗어납니다.





2. while 문


while문 예제 

설명 

while(true){
   수행할 문장들
} 

조건식이 항상 true이기 때문에 무한루프

(while문에서 벗어나지 못한다)에 빠지게 됩니다. 

int i = 0;
while(i < 10){
   수행할 문장들
    i++;
} 

조건식이 i<10 이기 때문에 i가 10보다 작을때 까지 수행

i++; 이라는 증감식이 없을 경우 무한루프에 빠지게 됩니다.





3. do ~ while 문


while문의 변형으로 반복적으로 수행할 문장들을 1번은 무조건 수행합니다.

do~while문 예제 

설명 

문장들;
do{
  수행할 문장들
}while(true); 

do~while문의 조건식이 true로 무한루프에 걸립니다.

수행할 문장들 위의 문장들은 반복하지 않습니다.


nt i=10;
do{
  수행할 문장들
  i ++;
}while(i<10);

do~while문의 조건식이 i <10 이지만 수행할 문장들을 수행

하지만, 반복해서 수행하지는 않습니다.



반복문의 수행되는 법


for문 

i=0

i=1

i=2

i=3

i=4

i=5

i=6

i=7

i=8

i=9

int j=0;

for(i=0;i<10;i++){

   j=i*5;

}

j=0*5

j=1*5

j=2*5

j=3*5

j=4*5

j=5*5

j=6*5

j=7*5

j=8*5

j=9*5




반복문 안에 반복문이 들어 있는 중첩 반복문도 있습니다.

int x = 0;
int y = 0;
for( int i = 0; i < 5 ; i++ ) {
          x += 1;
      for( int j = 0 ; j < 5 ; j++ ) {
           y += 1;
      }
}


위의 중첩 반복문이 수행되는 법

 

 i=0

i=1

i=2

i=3

i=4

j=0


x = 1


y = 1


x = 2


y = 6

x = 3


y = 11

x = 4


y = 16

x = 5


y = 21

j=1

x = 1


y = 2

x = 2


y = 7

x = 3


y = 12

x = 4


y = 17


x = 5


y = 22


j=2


x = 1


y = 3


x = 2


y = 8

x = 3


y = 13

x = 4


y = 18

x = 5


y = 23

j=3


x = 1


y = 4


x = 2


y = 9

x = 3


 y = 14

x = 4


y = 19

x = 5


y = 24

j=4


x = 1


y = 5


x = 2


y = 10

x = 3


y = 15

x = 4


y = 20

x = 5


y = 25



for문 , while문, do~while문, 중첩 반복문을 실습을 통해 공부합시다.



for 문

public class ExampleFor {
	public static void main(String[] args) {

		for (int i = 0; i < 10; i++) {
			System.out.println("Hello " + i);
		}
	}
}



while 문 , do~ while문

public class ExampleWhile {
	public static void main(String[] args) {
		// while (조건)
		// 한번도 실행 되지 않을 수 있다.
		// while문 진입 전 조건이 false라면..

		// do ~ while(조건)
		// 조건이 맞지 않더라도 무조건 한번은 실행이 된다.
		int a = 10;
		int b = 10;
		
		System.out.println("while문 실행");
		while(a!=b){
			System.out.println("while~~");
		}
		
		System.out.println("do ~ while문 실행");
		do{
			System.out.println("do ~ while");
		}while(a!=b);
		
		// while문 활용
		// 해당 while문은 for문으로 대체 가능함..
		// ~ 할 때 까지 반복해라
		while(a<20){ 
			System.out.println("while문 입니다.");
			a++;	// while 문 반복을 중지해야 하는 조건은 while문 내부에 있어야 한다.
					// 때에 따라 외부에 존재 하기도 한다. (ex : thread) 
		}
	}
}



중첩 반복문

public class ExampleDuplication{
	public static void main(String[] args) {


		// 구구단 표현하기

		for (int i = 2; i < 10; i++) {
			System.out.println(i + "단\t");
			for (int j = 1; j < 10; j++) {
				System.out.println(i + "*" + j + "=" + i * j);
			}
		}

		// 구구단 역순으로

		for (int i = 9; i > 1; i--) {
			System.out.println(i + "단\t");
			for (int j = 9; j >= 1; j--) {
				System.out.println(i + "*" + j + "=" + i * j);
			}
		}
	}
}


반응형
LIST
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함