중첩 for문
- for문 내부에 또 다른 for문을 기술하는 것
- 바깥쪽 for문과 안족 for문으로 구분 => 바깥쪽 for문이 한 바퀴 돌 때, 안쪽 for문은 여러 바퀴를 돈다. => 즉, 안쪽 for문의 반복 횟수가 바깥쪽 for문 반복 횟수보다 많다. = 안쪽 for문 반복횟수 = 안쪽 for문 + 바깥쪽 for문 횟수 ex) 시계의 분침이 바깥쪽 for문으로 0~59까지 60번 반복할 때 분침 1바퀴 당 초침이 안쪽 for문으로 0~59까지 60반복 = 1시간(60분) 당 초침 반복 횟수 = 분침횟수(60) * 초침횟수(60)
for(초기식1; 조건식1; 증감식1) { //바깥쪽 for문
문장1; // 바깥쪽 for문의 조건식1이 true일 때 실행되는 문장
for(초기식2; 조건식2; 증감식2) {
문장2; // 반복횟수 = 안쪽 for문 반복횟수 * 바깥쪽 for문 반복횟수
}
문장3; // 안쪽 for문 반복이 종료된 후 실행되는
}
- 바깥쪽 for문 : i값이 1~3까지 1씩 증가하면서 반복
for(int i=1; i<=3; i++) { //바깥쪽 for문
System.out.println("i= " + i); //3회 반복
for(int j=1; j<=2; j++) {
System.out.println("-----> j= " + j);
// 반복횟수 = j횟수(2) * i횟수(3) = 총 6회 반복
}
//안쪽 for문 반복이 종료된 후 실행되는 문장
System.out.println("----------안쪽 for문 반복 종료!");
}
- 바깥쪽 for문 i값이 1~10까지 반복할 동안 안쪽 for문 j값을 1~5까지 반복하면서 i와 j값을 출력
for(int i=1; i<=10; i++) { //바깥쪽 for문
System.out.println("i= " + i);
for(int j=1; j<=5; j++) { //안쪽 for문
System.out.println("----->j= " +j);
}
}
- 타이머(xx분 xx초)
-시(hour) : 0~23시 -분(min) : 0~59분 -초(sec) : 0~59초
<출력예시> 0분 0초 0분 1초 0분 2초 ...생략.... 0분 59초 1분 0초 ...생략... 59분 59초
for(int m=0; m<=59; m++) {
for(int s=0; s<=59; s++) {
// System.out.println(m+"분 " + s+"초");
System.out.printf("%2d분%2d초\\n", m,s); // 자동정렬
}
}
- 특정 단의 구구단 출력
단이 2~9까지 1씩 증가(바깥쪽 for문)
이때, 각 단마다 i값이 1~9까지 1씩 증가(안쪽 for문)
for(int m=0; m<=59; m++) {
for(int s=0; s<=59; s++) {
// System.out.println(m+"분 " + s+"초");
System.out.printf("%2d분%2d초\\n", m,s); // 자동정렬
}
- 중첩 for문 사용한 구구단 출력
int dan=2;
for(dan=2; dan<=9; dan++) {
System.out.println("<" + dan + "단>");
for (int i=1; i<=9; i++) {
// System.out.println(dan + "*" + i + "=" + dan*i);
System.out.printf("%d * %d = %d\\n", dan, i, dan*i);
}
System.out.println();
}
- 주사위 2개를 굴려 주사위 눈의 합이 6일 때 두 주사위 값을 출력 ex) 주사위1 주사위2 합계 1 + 5 =6 2 + 4 =6 3 + 3 =6 4 + 2 =6 5 + 1 =6
주사위 눈 : 1~6 주사위(dice1, dice2) 변수 값을 1~6까지 1씩 증가하면서 반복하여 주사위 눈의 합계가 6인지 판별하여 6일 때 주사위 눈의 값 출력 => 판별을 해야 하므로 if문이 같이 사용됨!
for(int dice1=1; dice1<=6; dice1++) {
for(int dice2=1; dice2<=6; dice2++) {
if(dice1 + dice2 == 6) {
System.out.println(dice1 + "+" + dice2 + "=" + (dice1+dice2));
}
}
}
- 방정식 4x + 5y = 60의 해를 구해서 출력하기
단, x와 y는 0 <= x, y <= 10
출력 예시) x= , y= 일 때 4x+5y=60
int x,y;
for(x=0; x<=10; x++) {
for(y=0; y<=10; y++) {
//4x + 5y가 60일 때 x,y 값 출력
int sum = (4*x) + (5*y); //방정식 계산
if(sum==60) {
System.out.println("x= " + x + ", y= " +y);
System.out.printf("x= %d, y= %d 일 때 4x+5y=%d\\n",x,y,sum);
}
}
}
'JAVA' 카테고리의 다른 글
[JAVA] do ~ while문 (0) | 2023.09.11 |
---|---|
[JAVA] while문 (0) | 2023.09.11 |
[JAVA] 반복문 - for문 (0) | 2023.09.11 |
[JAVA] switch-case문 (0) | 2023.09.08 |
[JAVA] 중첩 if문 (0) | 2023.09.08 |