C언어 기초 3일차 : 변수와 상수, 그리고 조건문(if)

bitterpotato·2020년 8월 29일
0

C언어 기초

목록 보기
3/7

1. 변수


변하는 수를 변수라고 한다. 쉽게 말해 내가 원하는 자료를 담는 컨테이너의 개념으로 생각하면 쉽다.


변수의 생성


C언어에서 변수를 생성하는 방법은 몇가지가 있다.


(1) 초기 값이 지정되지 않는 변수의 생성


우리가 변수를 생성하자 마자 해당 변수가 갖게 되는 값을 초기 값이라고 하는데, 이 값은 우리가 지정할 수도 있고, 지정하지 않고 생성할 수 있다.

초기 값을 따로 지정하지 않을 경우 쓰레기 값이라는, 전혀 이상한 값이 해당 변수에 대입되므로 이 방법을 통해 변수를 생성할 때는 주의가 필요하다.

초기 값이 지정되지 않는 변수는 아래와 같이 작성함으로서 생성할 수 있다.

(자료형) (변수명);

조금 더 직관적으로 이해하기 위해 실제 프로그래밍 시 어떻게 작성하는지 알아보자.

int a; // int 타입의 a 변수 생성

즉, (자료형) (변수명);을 통해 초기 값이 설정되어 있지 않은 변수 선언이 가능하다.


(2) 초기 값을 지정한 변수의 생성


초기 값을 지정 하면 우리가 지정한 값이 해당 변수에 대입된다.

일반적인 꼴은 아래와 같다.

(자료형) (변수명) = (지정할 값);

조금 더 직관적으로 이해하기 위해 실제 프로그래밍 시 어떻게 작성하는지 알아보자.

int b = 5; // int 타입의 b 변수 생성하고 b의 값을 5로 지정

즉, (자료형) (변수명) = (초기 값);을 통해 초기 값이 설정된 변수 선언이 가능하다.


(3) 같은 자료형의 여러 변수를 한꺼번에 생성


여러 변수를 한 줄에 생성할 경우 아래와 같이 작성하면 된다.

int c = 3, d, e= 5

이는 초기 값이 3인 c 변수, 초기 값이 5인 e 변수, 그리고 초기 값이 설정되어 있지 않는 d 변수를 생성한다.


2. 상수


변하지 않는 수. 어떤 수에 이름을 붙이는 것이라 생각하면 쉽다.

꼴은 아래와 같다.

const (자료 형) (상수 이름) = (초기 값);

실제로 코딩할 때는 아래와 같이 작성한다.

const int con = 10;

상수의 생성


상수는 반드시 초기 값을 설정해 주어야 하며 그렇지 않으면 오류가 발생한다.

생성(선언) 방법은 아래와 같다.

const (자로형) (상수명) = (값);

조금 더 직관적으로 이해하기 위해 실제 프로그래밍 시 어떻게 작성하는지 알아보자.

const int con = 5;

위의 구문에서는 int type의 5 값을 가지는 con 상수를 선언하였다.


덧. 변수와 상수의 이름 짓기


변수와 상수의 이름을 지을 때에는 몇가지 규칙이 있다. 이들 규칙은 권장의 선에서 끝나는 경우도 있지만 지키지 않을 경우 오류의 원인이 되기도 하니 숙지하기로 하자.


1) C언어 내 규칙


예약어(C언어 내에서 이미 사용한다고 표시한 단어)는 사용할 수 없다.

예) int, void, main

단, 예약어를 포함하는 단어는 사용할 수 있다.

예) integ 같은 경우는 가능하다.

영어, _(언더 바), 숫자만 사용할 수 있다. (대소문자 구분) 또한 띄어쓰기는 불가능하다.

숫자는 첫 글자가 될 수 없다.


2) 관습


for(반복문의 한 종류)문에서 사용하는 임시 변수는 관습적으로 i, j, k ... 순으로 사용한다.

또한 일반적으로 변수의 이름을 정할 때 변수의 역할을 이용해 이름을 짓는다.

예) terminated(분기를 빠져 나올 수 있게 하는 변수)

단어가 바뀔 경우 각 단어의 첫 문자를 대문자로 하거나 _로 잇는다.

예) myFirstVariable 또는 my_first_variable

변수의 경우 첫 글자가 소문자로 시작한다.

굳이 따를 필요는 없지만 협업을 위해서 따라주는게 좋다.


3.조건문 (if)


해당 조건이 참인가 거짓인가에 따라 실행 여부를 결정하는 문.

다른 말로 제어문이라고도 한다.


사용법


참일 때 실행될 구문이 한 줄 일 경우 아래와 같이 작성하면 된다.

if (조건)
    참일때 실행될 구문 한 줄();

하지만 참일 때 실행될 구문이 여러 줄 일 경우 중괄호로 묶어준다.

if (조건) {
    참일때 실행될 구문1();
    참일때 실행될 구문2();
    ...
}

참일 때 뿐만 아니라 거짓일 때도 구분하기 위해서는 아래와 같이 작성한다.

if (조건) {
    참일때 실행될 구문1();
    참일때 실행될 구문2();
}
else {
    거짓일때 실행될 구문1();
    거짓일때 실행될 구문2();
}

물론 각 분기마다 실행될 구문이 1개라면 아래와 같이 작성해도 무방하다.

if (조건) 
    참일때 실행될 구문 하나();
else
    거짓일때 실행될 구문 하나();

유의사항


반드시 함수 안에 들어가야 한다. (main() 함수 포함)
조건이 숫자인 경우 0이 아니면 참으로 간주한다.


조건


해당 내용은 연산자와 관련이 있는 내용이다.
더욱 자세히 알기 위해서는 연산자에 대한 추후 올라올 내용을 참고해도 좋을 것이다.
여기에서는 연산자를 안 다루었기 때문에 방법이라고 서술하겠다.

서로 같은가를 비교하기 위한 방법 : ==

서로 다른가를 비교하기 위한 방법 : !=

왼쪽이 더 큰지 비교하기 위한 방법 : >

오른쪽이 더 큰지 비교하기 위한 방법 : <

왼쪽이 더 크거나 서로 같은지 비교하는 방법 : >=

오른쪽이 더 크거나 서로 같은지 비교하는 방법 : <=


예제


조건문은 아래와 같이 실제로 사용할 수 있다.

#include <stdio.h>

int main() {
    // 3과 5 비교
    if (3==5)
        printf("3과 5는 같습니다.\n");
    else
        printf("3과 5는 다릅니다.\n");

    // a와 b 변수 생성
    int a = 3, b = 5;
    
    // a와 b 변수 비교
    if (a==b)
        printf("a와 b는 같습니다.\n");
    else
        printf("a와 b는 다릅니다.\n");
}

물론 3과 5는 다르고 a와 b가 서로 같지 않으니 아래와 같이 출력될 것이다.

3과 5는 다릅니다.
a와 b는 다릅니다.

Special Thanks


LJLee37 (Github : https://github.com/LJLee37, Twitch : https://www.twitch.tv/ljlee37)

profile
개발자 망생이

0개의 댓글