강의 내용
[1] 반복문(loop) : while문, do~while문
[2] 반복문(loop) : 이중 for(중첩 반복문)
[1] 반복문(loop) : while문, do~while문
while문
반복 횟수를 예측하기 어려운 경우에 사용함(반복문 안에 증감식을 직접 적어줘야 함)
조건식을 먼저 검사한 후 조건이 참인 경우에만 반복할 문장을 실행한다.
참 : 반복하다가 거짓이 되면 반복문을 빠져나온다.
거짓 : 문장이 한 번도 실행되지 않고 반복문을 바로 빠져나가게 된다.
*for : 몇 번 반복해야될지 예측 가능한 경우
*예측 불가능한 경우에는 주어진 데이터에 어떤걸 할건지에 따라 어떤걸 사용할지 판단함(for문/while문)
초기식;
while(조건식) {
반복할 문장;
증감식;
}
int i = 0;
while(i <= 5) {
System.out.println(i);
i++;
}
Q. int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 주어진 배열의 모든 원소를 출력하시오.
public class WhileLoopTest { public static void main(String[] args) { // Q. 0~5까지의 수를 출력하시오. int i = 0; // 초기식 while (i <= 5) { // 조건식 System.out.println(i); i++; // 증감식 } System.out.println(i); // 6 // Q. int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 주어진 배열의 모든 원소를 출력하시오. int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; i = 0; while (i < numbers.length) { // [0]~[9] System.out.println(numbers[i]); i++; } System.out.println(i); // 10 } }
do~while문
반복할 문장을 무조건 한 번은 실행한 후에 조건식을 검사한다.
반복문 내에 있는 문장을 최소한 한 번 실행하고자 할 때 유용하다.
while문이 밖으로 나와 있는 형태이므로 마지막에 세미콜론(;)을 적어줘야 한다.
초기식;
do {
반복할 문장;
증감식;
} while(조건식);
int i = 0;
do {
System.out.println(i);
i++;
} while(i <= 5);
Q. int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 주어진 배열의 모든 원소를 출력하시오.
public class WhileLoopTest { public static void main(String[] args) { // Q. 0~5까지의 수를 출력하시오. int i = 0; // 초기식 while (i <= 5) { // 조건식 System.out.println(i); i++; // 증감식 } System.out.println(i); // 6 // Q. int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} 주어진 배열의 모든 원소를 출력하시오. int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; i = 0; while (i < numbers.length) { // [0]~[9] System.out.println(numbers[i]); i++; } System.out.println(i); // 10 i = 1; do { System.out.println(i); i++; } while (i <= 5); } }
[2] 반복문(loop) : 이중 for(중첩 반복문)
for문과 for문을 이중(중첩)으로 사용하는 방법
반복문 안에 또 다른 반복문이 오는 경우를 중첩 반복이라 한다.
주로 2차원 배열을 핸들링할 때 사용한다.
2차원 배열 : 행과 열이 있는 2차원 매트릭스 구조
0행 : 0열, 1열, 2열
1행 : 0열, 1열, 2열
2행 : 0열, 1열, 2열
바깥에 의해 안이 반복되는 구조
i = 회전수
j = 반복되는 요소
for(int i = 0; i < 5; i++) {
for(int j = 0; j < 5; j++) {
반복할 문장;
}
}
※ 총 25번 실행 : 1회전(5), 2회전(5), 3회전(5), 4회전(5), 5회전(5)
Q. 이중 반복문을 이용하여 구구단(9x9)을 출력하시오.
[규칙]
하나의 단을 1~9까지 반복
i : 고정되는 자리 / 고정되는 부분
j : 반복되는 자리 / 반복되는 부분
*단 : 2단 → 3단 → 4단 → ... → 9단
*2X1=2 3X1=3 4X1=4 ~ 9X1=9
*2(j)X1(i)=2 3(j)X1(i)=3 4(j)X1(i)=4 ~ 9(j)X1(i)=9
public class GuGuDanTest { public static void main(String[] args) { // Q. 이중 반복문을 이용하여 구구단(9x9)을 출력하시오. // 2X1=2 3X1=3 4X1=4 ~ 9X1=9 // i : 고정되는 부분(1) // j : 반복되는 부분(2 -> 3 -> 4 -> ...) for (int i = 2; i <= 9; i++) { System.out.print(i + "단" + "\t\t"); } System.out.println(); for (int i = 1; i <= 9; i++) { for (int j = 2; j <= 9; j++) { System.out.print(j + "X" + i + "=" + (i * j) + "\t"); } System.out.println(); } } }
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/48sS29N