✍ 문제
2021년 8월 달력을 만들어보시오.
System.out.println("2021년 8월");
System.out.println("일\t월\t화\t수\t목\t금\t토");
int day = 1;
for(int i=0;i<31;i++) {
System.out.printf("%d\t",day);
day = day + 1;
}
여기까진 금방 만들어냈는데 또 조건문을 중첩시키는 구간에서 헤맸다.
for문 안에 if 조건문을 설정해서 7로 나누어 떨어질 때마다 줄바꿈하여 출력하도록 했고day = day+1;
은 if문 바깥으로 빼줬다. 안고치고 그대로 출력했더니 달력의 첫줄은 if문이 적용이 안되더라 ..
System.out.println("2021년 8월");
System.out.println("일\t월\t화\t수\t목\t금\t토");
int day = 1;
for(int i=0;i<31;i++) {
System.out.printf("%d\t",day);
if(day%7==0) {
System.out.println();
}
day = day + 1;
}
👉결과
✍ 문제
구구단을 출력하시오.
예제를 보지 않으면 엉뚱한 방향으로 풀게 되므로 예제를 기억하면서 풀어야한다. 구구단 가로출력 하는법이 그렇게 이해가 안돼서 새벽까지 똑같은 코드만 쳤더니 이제 외워버림
int num = 1;
int dan = 2;
for(int i=0;i<8;i++) {
System.out.printf("%dX"+num+"=%d\t",dan,dan*num);
dan = dan + 1;
}
첫줄부터 출력했다. 출력 후 변수
dan+1
을 줄바꿈없이 8번 반복하면 nX1단이 출력된다. 이걸 nX9까지 출력하려면 for문을 중첩시켜서 9번 반복시킨후 nX9단까지 줄 바꿔서 출력하면 끝. 마찬가지로num = num + 1;
은 안쪽 for문의 밖으로 빼줬다.
int num = 1;
for(int j=0;j<9;j++) {
int dan = 2;
for(int i=0;i<8;i++) {
System.out.printf("%dX"+num+"=%d\t",dan,dan*num);
dan = dan + 1;
}
System.out.println();
num = num + 1;
}
👉 결과
위와 같음