티스토리 뷰
반복문 이란? 어떤 작업이 반복적으로 수행되도록 할 때 사용하는 구문입니다.
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); } } } }
'프로그래밍 > Java' 카테고리의 다른 글
자바 ! 접근 지시 제어자 (private, default, protected, public) (0) | 2017.04.20 |
---|---|
자바 ! 객체지향 프로그래밍 (0) | 2017.04.18 |
자바 ! 조건문 ( if문 , switch~case문) (1) | 2017.04.14 |
자바 ! 연산자 (단항, 산술, 비교, 논리, 삼항, 대입) (0) | 2017.04.13 |
자바 ! 변수 (기본자료형, 참조자료형, 자료의 형변환) (0) | 2017.04.12 |