전체 반복 구조 (구구단 틀)/System.out.printf과 System.out.println의 차이

i가 세로임

✅ 1. 전체 반복 구조 (구구단 틀)

for (int i=1; i<10; i++) {
    // 한 단 출력
    System.out.println(i+"단");

    for (int j=1; j<10; j++) {
        // 각 곱셈식 출력
        System.out.printf("%d*%d=%d\t",i,j,i*j);
    }
    System.out.println(""); // 줄바꿈
}

이걸 기능별로 쪼개면 :


🔹 [1] 바깥 반복문 (단 제목 뽑기용)

  • for (int i=1; i<10; i++)
    i단부터 9단까지 출력하고 싶어서 사용하는 반복
  • System.out.println(i+"단");
    → 제목 줄 출력: "2단", "3단", …

🔹 [2] 안쪽 반복문 (구구셈 내용)

  • for (int j=1; j<10; j++)
    → 해당 단에서 1부터 9까지 곱하기
  • System.out.printf("%d*%d=%d\t",i,j,i*j);
    → 한 줄에 쭉 출력, \t로 간격 띄움

🔹 [3] 줄 바꿈 (단 끝나면)

  • System.out.println("");
    → 한 단 끝날 때 줄을 넘김
    → 이거 없으면 단끼리 붙어서 보기 힘들어짐

💡 정리: 3블록 구조 기억법

덩어리 번호 용도 핵심 구문 예시
단 제목 출력 System.out.println(i+"단");
곱셈식 출력 반복 for (int j=1; j<10; j++)
줄 바꿈 System.out.println("");

🧠 암기 팁

  • "바깥은 단 제목 / 안쪽은 곱셈 / 마지막은 줄바꿈"
  • 구조 흐름을 이렇게 떠올려:
    [단 제목] → [곱셈식 반복] → [줄바꿈]

System.out.printf()f"formatted"의 약자.
즉, printf"print formatted" → 형식을 갖춰 출력하라"는 의미.


🔍 어원 구조

  • print → 출력하라
  • f → formatted (서식을 지정한)

이건 C언어 계열에서 유래된 문법이라 자바에서도 그대로 가져온 거고, C에서도 printf는 "format에 맞게 출력"하는 함수였음.
printlnline을 자동으로 출력하는 것,
printfformat을 지정해서 출력하는 것.


원리 이해하면,

  • print = 그냥 출력
  • println = 줄까지 출력
  • printf = 서식 맞춰 출력
    구조가 딱 떨어짐.