직사각형 별찍기

김여울·2025년 6월 25일
0

내일배움캠프

목록 보기
30/111
#include <iostream>

using namespace std;

int main()
{
    int a;
    int b;
    cin >> a >> b;  // a: 가로 길이, b: 세로 길이

    for (int i = 0; i < b; i++) // 세로 길이만큼 반복
    {
        for (int j = 0; j < a; j++)  // 가로 길이만큼 반복
        {
            cout << "*";  // 별 출력
        }
        cout << endl;  // 한 줄 출력 후 줄바꿈
    }
}

1️⃣ cin >> a >> b;

  • cin은 사용자 입력을 받는 도구
  • a, b 두 변수에 순서대로 값 입력받음
  • 입력 전에 꼭 변수 선언이 필요함 → int a, b;

2️⃣ int a; vs int a = 0;

  • int a; 는 선언만 함 → 초기값 없음 (쓰면 위험)
  • int a = 0; 은 초기화까지 함 → 안정적
  • cin >> a; 처럼 바로 입력 받을 거면 굳이 초기화 안 해도 됨

3️⃣ 별찍기 for문 구조 (이중for문)

for (int i = 0; i < b; i++)      // 세로 줄 수 만큼 반복
{
    for (int j = 0; j < a; j++)  // 가로 별 개수 만큼 반복
    {
        cout << "*";
    }
    cout << endl;  // 줄 바꿈
}
  • 겉 for문(i): 몇 줄 찍을지 (세로 방향)
  • 속 for문(j): 한 줄에 별 몇 개 찍을지 (가로 방향)
  • endl은 한 줄 끝나고 줄을 내려줌

4️⃣ i는 배열이 아님

  • for (int i = 0; i < b; i++) 에서 i 는 단순 숫자 카운터
  • 배열이 없을 때도 for문은 얼마든지 사용 가능

5️⃣ 배열과 for문 연결

int nums[3] = {10, 20, 30};

for (int i = 0; i < 3; i++)
{
    cout << nums[i] << endl;
}
  • i 는 배열 인덱스 역할
  • 배열이 있을 때는 i로 각 요소에 접근
    → 배열이 있으면 인덱스 역할, 없으면 반복용 숫자

0개의 댓글