쯔이's Dev
제어문(2) - 반복문, 분기문 본문
* 특정 문장들을 반복해서 수행하도록함.
* 중첩 가능!!
< for 문 >
for(초기식; 조건식; 증감식) {
수행될 문장;
}
- 조건식이 false가 나올 때까지 반복해서 회전하면서 문장을 수행한다. 조건식이 false가 나오면 탈출!
- 정해진 횟수만큼의 반복을 수행하는 경우에 적합!
- 초기식, 조건식, 증감식 각각 생략하고 싶으면 생략해도 되지만 세미콜론 " ; "은 생략불가능! 꼭 써줘야 함!
- for ( ; ; ){ } 이면 무한반복을 의미한다.
- (초기식; 조건식; 증감식) 각각의 자리에 변수 여러개 선언도 가능하다 but 권장하진 않는다.....
ex) for(int num=1, count=1; count<= 10; num+=2; count++){ }
ex)
■ 실행결과 ■
< 향상된 for문(= for- each 문) >
for(변수 선언 : 배열 또는 컬렉션) {
//배열 또는 컬렉션의 요소를 순회하면서 수행할 작업
}
package array;
public class Array2 {
public static void main(String[] args) {
int[] numbers = {1,2,3,4,5};
for(int number : numbers) {
System.out.print(number +" ");
}
}
}
* 출력 *
* 향상된 for문을 사용하지 못하는 경우
- 향상된 for문에는 증가하는 인덱스 값이 감추어져 있다. 따라서 'int i ` 와 같은 증가하는 인덱스 값을 직접 사용해야 하
는 경우에는 향상된 for문을 사용할 수 없다
//for-each문을 사용할 수 없는 경우, 증가하는 index 값 필요
for(int i = 0; i < numbers.length; ++i) {
System.out.println("number" + i + "번의 결과는: " + numbers[i]);
}
이 예제에서는 증가하는 ` i 값을 출력해야 하므로 향상된 for문 대신에 일반 for문을 사용해야 한다
< while문 >
while(조건식) {
수행될 문장;
[증감식 or 분기문];
}
- 조건식이 true일 때 문장을 수행하고, 조건식을 다시 확인 후 true면 반복 수행하다가, false가 되면 반복문 종료.
- { } 안에 조건을 벗어나게 해줄 연산(증감식, 분기문) 필요함.
- 종료시점을 명확하게 알 수 없는 경우에 유용
ex)
■ 실행결과 ■
☆쯔이's Tip☆
♥ 예제 하나를 for문으로도 작성해보고 while문으로도 작성하는 연습을 해보자!
♥ while보다는 for문을 사용하는 것이 구조적으로 더 깔끔하고, 유지보수성이 높다.
♥ 구구단을 출력해보자!!
< do ~ while문 >
* 최초 한번은 코드 블럭을 꼭 실행해야 하는 경우에 사용!!
* 최초 한번은 항상 실행된다! 한번은 실행한 후에 조건식을 검증한다. 조건식이 true면 반복하다가, false가 되면 do~while문을 빠져나온다.
< break >
- break문이 포함된 가장 가까운 반복문을 빠져나가는 역할을 함.(즉시 종료)
ex)
for(int i = 1;; i++) {
System.out.println(i + " 출력");
if(i >= 10) {
break;
}
}
* 위의 예시에서 break문은 if문의 조건을 만족할 경우 if문을 빠져나가게 해준다.
< continue >
* 반복문 내에서만 사용 가능하며 반복문 실행 시 조건을 만족하면 continue 아래의 코드는 실행하지 않고 반복문(증감식)을 다시 실행.
* 전체 반복 중에 특정 조건을 만족하는 경우를 제외하고자 할 때 유용
for(int i = 1; i <= 10; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i + " 출력");
}
☆쯔이's Tip☆
♥ continue든 break든, 하나의 break 당 하나의 for문을 탈출한다
♥ continue를 꼭 if 문과 써야한다는 건 아니지만, if 문의 조건을 만족했을 때 사용하는 것이 주 쓰임새다.
♥ continue; 다음에는 다른 소스를 쓰지 못하기 때문에 if문의 특정 조건이 만족되면 다음 index로 넘기는 것이 자연스럽지, 반복문 안에 if문 없이 continue를 쓰는 것은 음.. 죽은코드나 마찬가지다.
'JAVA > 제어문' 카테고리의 다른 글
제어문(1) - 조건문 (1) | 2024.07.09 |
---|