C 스터디 3주차

for 문

 for(초깃값; 조건값; 증감값)
 {
   반복할 내용
 }

for 문은 while문보다 반복 횟수를 표현하는 것이 더 편리

증감값에 i++이나 i=i+1과 같은 표현을 사용하면 for 문이 수행할 반복 횟수를 보다 쉽게 표현할 수 있다.

while 문과의 비교

  int i=0;

  while(i<5)
  {
    printf("%d \n", i);
    i++;
  }
  int i;

  for(i=0;i<5;i++)
  {
    printf("%d \n", i);
  }

for 무한 루프 (무한 반복문)

  int i;
  for(i=0; 1; i++)
  {
    반복할 내용
  }
  int i;
  for(i=0; ; i++)
  {
    반복할 내용
  }

중첩 for 문
구구단 코드

 #include <stdio.h>
 int main()
 {
   int i, j;
   for(i=2;i<=9;i++)
   {
     for(j=1;j<=9;j++)
     {
       printf("%d * %d = %d \n", i, j, i*j);
     }
     printf("-----------\n");
   }
   return 0;
 }

실행 결과

2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
(중 략)
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81


1차원 배열

배열이란?

번호(인덱스)와 번호에 대응하는 데이터들로 이루어진 자료 구조를 나타낸다. 일반적으로 배열에는 같은 종류의 데이터들이 순차적으로 저장되어, 값의 번호가 곧 배열의 시작점으로부터 값이 저장되어 있는 상대적인 위치가 된다.

배열의 필요성
학생 100명의 성적을 저장하려면 적어도 100개 이상의 변수가 필요하다.

#include <stdio.h>
int main()
{
  // int형 변수 100개
  int student1, student2, student3, ... , student100;
  ...
  return 0;
}

코드를 보면 변수의 개수가 너무 많다. 또한 코드의 길이도 길어서 매우 비효율적인 프로그램이 된다.
다음 코드는 배열의 필요성을 보여준다.

#include <stdio.h>
int main()
{
  // int형 배열
  int student[100];
  ...
  return 0;
}

변수 100개를 배열 하나로 처리해서 코드의 길이도 짧아지고 가독성도 좋아졌다. 이처럼 같은 자료형을 가진 변수들이 여러 개 필요할 때 사용하는 것이 배열이다.

배열의 선언

int array[5];
자료형 배열 이름 [배열 길이]
int array[3] = {10, 20, 30};
배열 선언과 동시에 초기화

char형(1Byte) 배열은 배열 길이 1당 1Byte의 메모리 공간을 할당.
int형(4Byte) 배열은 배열 길이 1당 4Byte의 메모리 공간을 할당.

char array1[5]; => 연속된 메모리 공간 5Byte 할당
int array2[5]; => 연속된 메모리 공간 20Byte 할당

배열 사용법

#include <stdio.h>
int main()
{
  int student[3] = {70, 80, 90};  // 배열 선언과 동시에 초기화
  printf("1번 학생의 점수는 %d점 입니다.\n", student[0]);
  printf("2번 학생의 점수는 %d점 입니다.\n", student[1]);
  printf("3번 학생의 점수는 %d점 입니다.\n", student[2]);

  return 0;
}

실행결과

1번 학생의 점수는 70점 입니다.
2번 학생의 점수는 80점 입니다.
3번 학생의 점수는 90점 입니다.

배열 요소의 위치는 0부터 시작

results matching ""

    No results matching ""