2021. 1. 30. 14:54ㆍProgramming/C
✔ 학습목표
조건문과 루프를 c로 작성할 수 있다.
변수 설정
조건문과 루프에 관한 코드를 작성하기에 앞서, 앞서 배운 변수를 복습해보자. 지난 글에서 처럼 C는 오래된 언어기 때문에 저장하고자 하는 변수의 종류를 꼭 명시해주어야 한다. 만약 숫자를 세는 프로그램을 만들고 싶어 counter라는 변수를 설정한다면
int counter = 0;
처럼 말이다. 여기서 int는 저장하려는 데이터가 정수(integer)라는 것을 의미한다. counter는 변수의 이름, 0은 그 값에 0을 저장(초기화)하는 것이다(할당 연산자 '=' 사용). 코드의 마지막에는 꼭 세미콜론(;)을 붙여주는 것도 중요하다.
그렇다면 숫자를 세는 기능은 어떻게 구현할까. C에서는 변수의 값을 1씩 증가시키는데 다양한 방법이 있다.
1) counter = counter + 1;
2) counter += 1;
3) counter ++;
이런 방법들을 통해 더욱 보기 좋고 간결한 코드를 만들어나갈 수 있다.
조건문
조건문 if의 사용을 배워보자. 형식은 다음과 같다.
if (test expression)
{
// statements to be executed if the test expression is true
}
예시를 보면 보다 쉽게 이해할 수 있다. 다음은 x와 y라는 숫자를 받아오고, 둘을 비교하는 프로그램이다.
#include <stdio.h>
#include <cs50.h>
int main(void){
int x = get_int("x : ");
int y = get_int("y : ");
if(x < y){
printf("x is less than y\n");
}
else if(x > y){
printf("x is not less than y\n");
}
else{
printf("x is equal to y\n");
}
}
if ()의 괄호 안에는 검사하고자 하는 조건이 들어가며(불리언), {}안에는 조건을 만족할 때 수행하고자 하는 작업이 들어간다. if(x < y)의 경우 조건이 참이면 "x is less than y"를 출력하라는 것이다. else if를 사용하면 조건을 추가할 수 있다.
이 프로그램의 경우 x가 y보다 작은지(x < y), 큰지(x > y), 같은지(x == y)를 비교한다. 여기서 필요 없는 것이 x == y이다. 만약 x가 y보다 작지도 크지도 않다면 남은 가능성이 같은 경우이기 때문이다. 그렇기 때문에 코드를 짤 때 당연한 것은 지운다. 얼마나 효율적으로 코딩을 하는지, 혹은 얼마나 적은 메모리나 CPU를 사용해서 작업을 수행하는지는 정말 중요하다.
루프
루프 for과 while의 사용을 배워보자.
1)while
while (testExpression)
{
// statements inside the body of the loop
}
while의 경우 () 안에 조건을 넣고, {} 안에 수행할 작업을 포함시키면 된다. 즉 C에서 루프를 구현하고 싶다면 성립 조건을 정해줘야 한다. 이때 답은 네, 참, 혹은 1로 나와야 하는데 가장 간단한 방법은 그냥 true(무한반복)를 적는 것이다.
int i = 0;
while (i < 50)
{
printf("hello, world\n");
i++;
}
while의 간단한 예시다. 정수 데이터의 변수명을 i로 작성한 후 0으로 초기화하고, while문에서 50번 반복하는 코드를 작성했다. 헤더 파일을 추가하고 프로그램을 실행시키면 "hello, world"가 50번 반복해서 출력될 것이다.
2) for
for (initializationStatement; testExpression; updateStatement)
{
// statements inside the body of loop
}
for의 형식은 다음과 같다. 괄호는 (변수 초기화; 변수 조건; 변수 증가)라는 의미를 가진다.
for (int i = 0; i < 50; i = i + 1)
{
printf("hello, world\n");
}
앞서 while의 예시와 똑같은 기능을 하는 코드를 작성했다. 둘의 차이가 있다면, for문이 기계적인 반복에서 보다 더 자주 사용된다.
함수 형식 출처
Programiz: Learn to Code for Free
www.programiz.com
이 글은 네이버 부스트 코스 David J. Malan(데이비드 J. 말란) 교수님의 모두를 위한 컴퓨터 과학(CS50 2019) 강의를 수강하고 작성한 글입니다. 본 강좌 내 실습에서는 CS50 Sandbox를 사용합니다.
모두를 위한 컴퓨터 과학 (CS50 2019)
부스트코스 무료 강의
www.boostcourse.org
'Programming > C' 카테고리의 다른 글
C 언어 | 배열 (0) | 2021.02.02 |
---|---|
C 언어 | 사용자 정의 함수와 중첩 루프 (0) | 2021.01.31 |
C 언어 | 자료형, 형식 지정자, 연산자 (0) | 2021.01.30 |
C 언어 | 문자열 (0) | 2021.01.30 |
C 언어 | C 기초 (0) | 2021.01.30 |