오늘은 어제에 이어 제어문 중 반복문과 분기문을 나갔다.
중첩 for문은 중첩 if문처럼 for문안에 for문이 들어가는 형식으로
for(초기값1; 조건식1; 증감식1) {
수행될 코드1;
for(초기값2; 조건식2; 증감식2) {
수행될 코드2;
}
수행될 코드3;
}
진행은 먼저 가장 위에 있는 for문에 들어가 코드1을 수행하고 두번째 for으로 넘어가게 된다.
이후 조건식 2가 false가 될 때까지 코드2를 수행 후 나오면 코드3을 수행하고 조건식 1로 돌아와 true일때 다시 반복한다.
반복문 중 하나인 while은 for과 다른 점이 있는데 간단하게 설명해서 for은 반복이지만 횟수가 정해져 있고 while문은 횟수가 정해져 있지 않다.
while(조건식) {
수행될 코드;
[증감식 or 분기문];
}
조건식이 true일 때 수행 될 코드를 실행하고 코드 실행이 끝나면 조건식을 다시 확인 후 true일땐 다시 실행, false일땐 반복문 종료가 된다.
{ } 안엔 조건을 벗어나게 할 연산 (증감식, 분기식)이 필요하다.
do {
수행될 코드;
[증감식 or 분기문];
} while(조건식);
do ~ while문은 do 안의 내용 먼저 실행 후 조건식을 확인하고 true라면 문장 수행, false면 탈출한다.
while문과 do ~ while문의 차이는 do ~ while은 조건문이 true가 아니여도 무조건 한번 이상 수행된다.
반복문에서 braek문 자신이 포함된 가장 가까운 반복문을 빠져나가는 구문으로 탈출 후 가까운 코드가 수행된다.
for(int i = 1;; i++) {
System.out.println(i + " 출력");
if(i >= 10) {
break;
}
}
for(초기값1; 조건식1; 증감식1) {
수행될 코드1;
for(초기값2; 조건식2; 증감식2) {
수행될 코드2;
break;
}
수행될 코드3;
[break;]
}
두번째 for문에 break를 만날 경우 반복문을 탈출해 수행될 코드3을 수행하고 다시 첫번째 for문을 실행하지만 마지막에 break가 있었다면 수행될 코드3을 수행 후 for문을 완전히 빠져나가게 된다.
반복문 내에서만 사용 가능하며 반복문 실행 시 continue 아래 부분은 실행되지 않고 반복문을 다시 실행한다.
쉽게 설명하면
break는 반복문을 바로 멈추고
continue는 다음 반복으로 넘어간다.
for(int i = 1; i <= 10; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i + " 출력");
}
위 코드를 출력해보면 2의 배수는 continue로 출력되지 않고 1 3 5 7 9만 출력되게 될것이다.
만약 continue가 아니라 break였다면 1출력되고 2에서 break되기 때문에 콘솔창엔 1만 출력을 예상해 볼 수 있다.
이렇게 유익한 내용을 공유해주셔서 감사합니다.