[Java] 문제풀이 복습

민아·2022년 1월 5일
0

문제 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;
		}

👉 결과 위와 같음

profile
그냥 꾸준히 하는중

0개의 댓글