[C언어] # 1. 조건문 if / else if / else와 논리연산자&산술연산자

Crush_on_Study·2022년 6월 5일
0

C언어 기초

목록 보기
2/11

이전 시간에는 기본적인 입출력함수에 대해 배웠었습니다. 오늘은 기초 문법 중 하나인 조건문과 연산자들에 대해 배워보겠습니다.


조건문 if/else if/else

0. 조건문이란?

조건문은 말 그대로, 코드를 수행하는데 있어 사용자가 정의한 조건에 따라 수행할지 말지 결정하는 문법을 말합니다. 아래 소스코드 봅시다.

갑자기 뭐가 많이 길어졌다. 그죠? 그래도 어려운 내용은 하나도 없습니다.
우리 저번에 시간에 배웠던거 많이 보이네요!

  • #include는 무슨 기능을 하는지?
  • <stdio.h> 헤더파일은 무슨 기능을 제공하며, <>와 " "의 차이는 뭔지?
  • int는 무슨 자료형인가?
  • &는 무슨 기능을 하는가?

이 4개를 앞에 글 안보고 답할 수 있다면 여러분들은 굉장히 훌륭하게 습득하신 것입니다. 복습은 각자 답변해보는걸로 하고!


if (조건식)
{
	printf("수행할 문장");
}

if의 뜻은 초등학교를 나오셨다면 바로 대답이 가능한, '만약에' 라는 뜻이죠?
태연 띵곡입니다. 위 소스코드가 if문의 원형입니다.
제 소스코드의 내용은 현재 여러분이 갖고 있는 돈을 입력받은 뒤,

  • 돈이 10만원 이상이다 << 치킨 한마리 구걸
  • 돈이 5만원 이상이다 << 아이스크림 한개 구걸
  • 5만원 아래로 있다 << 밥 사줄게. 대신 형이라 불러.

이렇게 짜놨습니다. 이렇게 조건이 1개가 아닌 여러개가 있을 경우에는

  • if (만약)
  • else if (만약 다른 조건으로는)
  • else (그 이외의 모든 상황에서는)

이렇게 적절히 섞어볼 수 있겠습니다.


산술연산자

1. 산술연산자

#include <stdio.h>

int main()
{
	int your_money;
	scanf("%d",&your_money);
	
	if (your_money >= 100000)
	{
		printf("형, 치킨 하나만요");
	}
	
	else if (your_money >= 50000)
	{ 
		printf("형, 아이스크림 하나만요");
	}	
	
	else
	{
		printf("내가 사줄게. 형이라 해봐 ㅋ");
	}
	
	return 0;
} 

이 소스코드를 보면 >= 라는 기호가 보입니다. 수학을 잘하시는 여러분들이면 익숙한 기호일텐데, C언어에서도 여러분들이 생각하시는 '크거나 (혹은 작거나) 같다' 기호가 맞습니다.

C언어에서도 +,-,/,* (차례대로 더하기,빼기,나누기,곱하기) 사칙연산 기호가 있고 대소비교를 위한 부등호들도 그대로 있습니다.
다만! 수학에서는 배운적이 없는 특별한 산술연산자가 하나 있습니다.

바로 %기호 입니다.

  • C언어에서 /는 나누기지만 결과값은 '몫'만 나옵니다. 예를 들어서
#include <stdio.h>

int main()
{
	int a = 6;
	int b = 4;
  	printf("%d",a/b);
  
  	return 0;
}

이런 코드가 주어질 때, printf에서 출력될 값은 무엇일까요?
여러분들의 IDE를 이용해서 한번 돌려보세요. 결과값은 1.5가 아닌 1이 나옵니다.

즉, 만 나온 것이죠.

  • 아? 그러면 %는 뭔가요? %는 나눴을때 결과값은 '나머지'만 나옵니다.
#include <stdio.h>

int main()
{
	int a = 6;
	int b = 4;
  	printf("%d",a%b);
  
  	return 0;
}

그럼 이 소스코드에서 결과값은 2가 나올것입니다.
나머지를 의미하는 산술연산자 %는 단언컨대, 굉장히 자주쓰이고 유용할 것입니다. 윤년을 계산한다던가, 홀/짝을 구분하는 코드를 짜라할 때 빠짐없이 나오는 개념이거든요!


논리연산자

2. 논리연산자

이번엔 좀 더 재밌는 연산자입니다. ,거짓을 판단하는 연산자로 제일 많이 쓰이는데요. 아래 표로 먼저 정리해드렸습니다.

심볼의미
&&AND라는 의미로 조건 모두를 만족해야 코드를 수행
(심볼 표시가 안됌;;)OR라는 의미로 조건 중 하나라도 만족하면 코드 수행
==두 변수의 일치를 의미
!=두 변수의 불일치를 의미


심볼 표시가 안되길래 Dev C++로 보여드렸습니다. || 이 기호는 여러분들 키보드에 \ 원화표시 혹은 백슬래시로 표시되어있을텐데요. Shift + \를 누르면 | 가 됩니다. 실제로 위 코드를 돌려보시면 a가 5거나 b가 4면 if문을 수행합니다.

#include <stdio.h>

int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	if (a==5 || b==4)
	{
		printf("오! 아무 의미없구요 ㅋ");
	}
	
	return 0; 
}

복붙해서 함 돌려보세요!


추가 Tip! Escape와 주석이란?

3. Escape와 주석처리

이건 원래 지난 시간에 설명드렸어야 했는데, 깜빡했네요. 별거는 아니고요!

  • 주석처리부터 말씀드리자면, 주석이라는 것은 설명을 의미합니다. 우리가 어떤 코드를 짤 때, 우리 눈에는 익숙해도 남들이 봤을 때는 이게 무슨 내용인지 모를 때가 대부분입니다. 그래서, 코드에 설명을 덧붙이기 위해 주석을 단다! 라고 말하는데요. Git으로 협업할 일이 많은 SW직군의 경우, 코드리뷰를 할 때마다 주석을 달아야 리뷰하기가 편하고 그렇습니다. 팀원에 대한 배려죠. C언어에서는 // 을 사용하면 주석이 됩니다. 이건 한줄 주석을 의미하고
    /* */ 하고 싶은 말 저 사이에 적어~ 이거는 여러줄 주석을 남길 때 씁니다.

    위 사진을 보면 주석처리된 부분은 파란색으로 되고, 실행시켰을 때 주석처리된 부분은 실행이 안되어있음을 볼 수 있습니다.

  • Escape는 아래 표를 참고바랍니다.

    여기서 사실상 제일 많이쓰는건 \n고 나머지는 그때그때 찾아서 사용하면 됩니다.

    이렇게 \n을 printf구문에 넣었더니 줄바꿈 처리가 되서 실행된 것을 볼 수 있습니다.
profile
방구석백수 코드몽키

0개의 댓글