※이 글은 신용권 님의 혼자 공부하는 자바를 공부하며 참고한 글입니다.
반복문
은 어떤 작업(코드)을 반복해서 수행시킬 때 사용된다.
반복문의 종류로는 for문, while문, do-while문이 있다.
반복문을 사용할 때 for문이나 while문 둘 중 어느 것을 사용해도 상관없지만
for문은 반복 횟수를 알고 있을 때 주로 사용되고, while문은 조건에 따라 반복할 때 주로 사용된다.
while문과 do-while문의 차이는 반복문을 실행하기 전 적어도 한번 실행을 하고 반복을 시작할지 말지의 차이만 있다.
For문
//example code 1
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
System.out.println("이 문장을 10번 출력할 것 입니다.");
//example code 2
for (int i=0; i<10; i++) {
System.out.println("이 문장을 10번 출력할 것 입니다.");
}
위의 example code 1처럼 10줄 코드만이 아닌 100줄, 1000줄 똑같은 작업을 하는 코드를 아래 example code 2와 같이 3줄 혹은 그 이하로 줄일 수 있다.
for문은 조건식, 실행 식이 있다.
조건식은 소괄호() 안에 있는 코드들이고, 실행식은 중괄호{} 안에 있는 코드들이다.
for문은 조건식의 값이 true라면 실행문이 실행된다. 만약 조건식의 값이 false가 나왔다면 반복문이 중단된다.
for ( int i = 0; i < 10; i++ ) { System.out.println("이 문장은 10번 출력됩니다."); }
int i = 0; : 반복문 속의 조건식에서 기준이 되는 함수를 선언해줍니다. 보통 i, j 등 외자로 선언합니다.
i < 10; : 반복문 속의 실행식을 실행할지 정하는 조건식입니다. 해당 값이 true라면 실행, false라면 반복문을 빠져나갑니다.
i++ : 반복문이 실행될때마다 실행되는 증감식입니다. 해당 식으로 인해 무한 루프에 빠지지 않게 됩니다.
정리를 해보자면...
- 변수 i는 0으로 시작한다.
- for문은 i가 10 미만이라면 실행된다.
- 반복문이 한번 반복될때 마다 i는 1씩 증가한다.
- 처음으로 반복문이 실행될때 i==0이므로 i < 10이 false가 처음으로 나오는 i == 10이 될 때는 10번 반복된 후이다.
- 즉 해당 반복문은 10번 실행된다,
int i와 같은 초기화식은 필요에 따라 쉼표(,)로 구분하여 두 개 이상도 작성할 수 있다.
//example code
for (int i=0, j=0; i<=50 && j>=50; i++, j--) {
...
}
초기 화식에 선언된 변수는 for문 블록 내부에서만 사용할 수 있는 로컬 변수이다.
만약 밖에서도 사용하고 싶다면 초기 화식을 반복문 실행 이전에 선언하고 가져와 사용하는 방법이 있다.
for문에서 주의할 점
은 초기화식에서 루프 카운터 변수를 선언할 때 부동 소수점을 사용하는 float 타입을 사용하지 말아야 한다.
float은 0.1과 같은 수를 정확하게 표현할 수 없기 때문에 사실상 0.1에 근접한 근삿값이 저장된다. 따라서 원하는 만큼 반복문이 실행되지 않을 수가 있다.
While문
while문은 조건식이 ture일 경우에 계속해서 반복한다.
//example code
int sum = 0;
int i = 1;
while (i <= 100) {
//조건식이 true일 경우 실행되는 블록
sum+=1;
i++;
}
//조건식이 false라면 빠져나감.
//sum == 5050
while문을 종료시키기 위해 조건식의 값이 false가 나오는 경우도 있지만 break문을 이용하는 방법도 있다.
break문과 continue문
break문이란 반복문 for문, while문, do-while문에서 다 사용될 뿐만 아니라 조건문인 switch문에서도 사용될 수 있는
범용성이 높은 코드이다.
break문은 반복문, switch문을 종료하기 위해 사용된다.
반복문 또는 switch문 블록 안에서 break문을 만나면 다음 조건식이 참이여도 실행하지 않고 바로 반복문 혹은 switch문을 종료한다.
만약 반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료시키고 둘러싸고 있는 외부의 반복문은 종료하기 않는다. 만약 중첩된 반복문에서 바깥 반복문까지 종료하고 싶다면 바깥 반복문에 이름(라벨)을 붙이고 'break 이름'; 을 사용하면 된다.
//example code
Label: for (...) {
for (...) {
break Label;
}
}
continue문은 break문의 반대되는 개념으로 반복문을 종료하지 않고 계속 반복을 수행한다.
다만 continue문 아래에 있는 실행문은 실행되지 않고 다시 반복을 실행한다.
//example code
while (...) {
System.out.println("Hello World");
continue;
System.out.println("이 코드는 절대 실행되지 않습니다.");
}
Do -while문
do-while문은 while문과 같은 동작 방식을 가지고 있지만 실행문은 조건식에 상관없이 무조건 최초에 한번은 실행된다는 차이점을 가지고 있다.
//example code1
int i = 0;
do {
i++;
} while(i < 0);
//example code2
do {
int i++;
} while(i < 10);
example code1은 조건식이 flase라서 반복은 안되지만 do while문은 조건식의 결과값에 상관없이 적어도 한 번은 실행되므로 i==1이 된다.
example code2는 조건식이 true라서 flase가 될때까지 실행문을 반복한다.
Thank you for your time to read this writing.
'📖혼자공부하는자바' 카테고리의 다른 글
Chapter 06-1 객체 (0) | 2022.11.22 |
---|---|
Chapter 05-1 참조 타입과 참조 변수 (0) | 2022.11.21 |
Hanghae Solution [Math.random()] (0) | 2022.11.18 |
Hanghae Solution [증감 연산자] (0) | 2022.11.18 |
Hanghae Solution [타입 변환] (0) | 2022.11.18 |