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부터 시작