티스토리 뷰
반복문 이란? 어떤 작업이 반복적으로 수행되도록 할 때 사용하는 구문입니다.
|
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 |
