본문 바로가기
C언어

야메 C언어 강좌: 6. if문 조건문의 시작

by 케찹이 2020. 4. 28.

안녕하세요. 매일 블로그에 글을 올리는게 꽤 힘드네요. 그래도 벌써 블로그에 제글을 올리기 시작한게 2주가 거의 다가갑니다. 항상 매일 꾸준히 무언가를 하는게 힘든일인데 이번계기로 저만의 프로젝트를 만들어 매일 (무엇)하기 식으로 제가 성장할 수 있는 무언가를 계속해서 시작할 생각입니다. 여러분들도 꾸준히 코딩 공부 하시고 계시나요? 이 강좌를 꾸준히 보신 여러분들은 이전까지 정말 기초의 기초를 배우셨다고 생각해도 좋습니다. 그리고 오늘부터 배우는 조건문들은 거의 모든 컴퓨터 언어에 똑같이 적용되는 기초지식입니다. 덕분에 이런 간단한 조건문으로 정말 많은 것들을 해낼수 있죠. 그럼 여러분들 새로운 지식을 받아들일 준비가 되셨나요? 그럼 한번 if문을 시작으로 조건문들을 배워보죠.

 

 

우리가 네이버, 다음, 카카오톡 등웹사이트에 들어가 다양한 서비스를 즐기기 위해서 자신의 아이디와 비밀번호를 눌러 로그인을 하게 되죠. 그때 웹사이트는 등록이 되어 있는 아이디가 일치되는 비밀번호를 눌러야지만 로그인이 가능하게 되죠. 그럼 웹사이트의 로그인 프로그램은 밑과 같은 방식으로 실행이 됩니다.

아이디를 입력한다. 비밀번호를 입력이러한 상황에서 알맞은 아이디와 비밀번호가 오는지 아닌지에 따라 다른 결과를 불어오게 됩니다. 아이디가 등록되었나라는 질문에 맞으면 비밀번호를 입력 아니면 로그인을 할 수 없습니다를 출력. 그리고 비밀번호도 이러한 조건에 로그인을 성공할 수 있고 로그인을 할 수 없다는 말을 출력합니다. 이것이 바로 조건문 if를 활용한 프로그램이라고 생각하면 되겠습니다. 

 

#include<stdio.h>

int main(){
	int a ;
	printf("알맞은 수를 입력하세요 : ");
	scanf("%d",&a);
	
	if(a==10){
		printf("역시 숫자면 10이지!\n");
	}
	else{
		printf("당신의 선택은 그렇군요...");
	}
	return 0; 
}

위 코드의 취지는 숫자 하나를 사용자가 입력받게 되고 그 숫자가 10이면 "역시 숫자면 10이지!"가 출력되고 다른 숫자가 입력 된다면 "당신의 선택은 그렇군요..."가 출력되는 코드다. 

if문을 사용하는 방법은 밑과 같다. 

if(실행조건){
	//실행시키고 싶은 명령;
}

if의 실행조건이란 이 조건이 참이면 실행을 시키고 거짓이면 건너뛴다를 의미합니다. 음...더 자세히 말하게 된다면 실행조건이 참일 경우엔 1이란 값이 생기고 조건이 거짓이면 0이란 값이 생깁니다. 그 말은 if의 실행조건으로 1을 전달하게 되면 밑 명령문이 실행이 되고 0을 전달할 경우 실행이 되지 않습니다. 이 내용은 전반적으로 c언어에 적용이 되고 정리하자면 조건이 true이면 1이고 false이면 0입니다. 이것은 나중에도 많이 활용되는 내용이므로 잘 알고 계셔야합니다. 

 

그럼 if문 밑에 else가 있는데 else는 if의 실행조건 이외의 실행조건을 말합니다. 위 코드에서 a가 10이면 "역시 숫자면 10이지!"가 출력되었는데 a가 1,2,3,4,5,6,7,8,9,11,12....라면 모두 그 밑의 명령어를 실행시키는 것이죠. if문과 else문은 세트이지만 if문만 단독적으로 사용이 가능합니다. 하지만 else문을 단독으로 사용하기는 힘들겠죠. 

 

 

#include<stdio.h>

int main(){
	int a ;
	printf("알맞은 수를 입력하세요 : ");
	scanf("%d",&a);
	
	if(a==10){
		printf("역시 숫자면 10이지!\n");
	}
    else if(a==7){
    	printf("럭키 세븐!");
    }
	else{
		printf("당신의 선택은 그렇군요...");
	}
	return 0; 
}

계속해서 조건문을 배우도록 하겠습니다. 위 코드는 첫번째 코드에서 else if라는 조건문을 새로 추가한 코드입니다. 방금 if문을 배우고 하나의 조건말고 여러개의 조건이 있으면 좋겠다라고 생각이 들 수 있습니다. 그 욕구를 해소해주는 조건문이 바로 else if문입니다. else if의 사용법은 위와 같이 if문과 별반 다를게 없습니다. else if문은 하나가 아니고 계속해서 사용하시 수 있습니다. 

#include<stdio.h>

int main(){
	int a ;
	printf("알맞은 수를 입력하세요 : ");
	scanf("%d",&a);
	
	if(a==10){
		printf("역시 숫자면 10이지!\n");
	}
	else if(a==7){
    	printf("럭키 세븐!");
    }
    else if(a==5){
    	printf("오오");
    }
	else{
		printf("당신의 선택은 그렇군요...");
	}
	return 0; 
}

바로 이런식으로 여러개 else if를 동시에 사용하실 수 있습니다. 근데 if문은 동시에 여러개 사용이 불가능한가요?라는 질문이 있을 수 있습니다. if문도 여러개 사용하실수 있습니다. else if그리고 if둘다 동시에 사용가능합니다! 다만 둘의 차이점을 잘 알아두셔야 합니다. if문과 else if문의 특이점을 잘못 알고 계신분들을 이 둘을 동시에 사용하게 될경우 이상한 결과가 나타날 수 있습니다. 

#include<stdio.h>
int main(){
	int a;
    printf("수를 입력하세요 :");
    scanf("%d",&a);
    
    if(a==10){
    	printf("역시 숫자면 10이지!\n");
	}
    if(a==10){
    	printf("럭키세븐!\n");
	}
    else if(a==10){
        printf("오오!\n");
	}
    
    return 0;
}

위의 코드와 같이 내가 실수로 조건문을 잘못 만들어서 모든 if그리고 else if문의 실행조건을 a==10으로 통일시켜놓았다고 합시다. 그럼 10을 입력했을 때 출력결과는 어떻게 될까요?

그 결과로 if문안에 있는 명령어들만 실행이 됩니다. 그럼 else if는 왜 실행이 안되고 if문은 왜 두번이 되었을까. 여기서 if문이 연속되어 실행되어 있다면 그 실행조건을 만족하면 무조건 실행이 되게됩니다. 하지만 else if는 무조건 위의 if문이 실행이 된다면 else if문은 실행되지 않습니다. 

정리하자면 if문은 다른 조건문을 살피지 않고 무조건 자신의 실행조건이 참이게 되면 명령을 실행하게 됩니다. 반면에 else if문은 먼저 자신 위에 있는 if문이 참이면 실행이 안되고 거짓일 경우에만 else if문을 살펴보게 됩니다. 

 

 

마지막으로 비교 연산자와 논리 연산자에 관해서 설명을 하고 이번 강좌를 마치도록 하겠습니다. 

비교 연산자는 우리가 아는 크다,작다, 같다, 크거나 같다, 작거나 같다의 표현입니다. 이는 간단하게 표현된다.

 

크다: >    작다: <   같다: ==      크거나 같다: >=      작거나 같다:   <= 

 

그럼 한번에 우리가 a라는 숫자의 범위를 지정해주고 싶을 때 평상시에는 0<x<1라고 사용할 수 있지만 c언어에선 이러한 표현이 가능하지 않습니다. 위 표현방식을 가능하게 해주는 것이 바로 논리 연산자입니다. 

논리 연산자는 &&와 ||가 있겠습니다. 그럼 코드를 통해서 살펴보도록 하겠습니다. 

#include<stdio.h>
int main(){
	int a;
    printf("당신의 나이는?  :");
    scanf("%d",&a);
    
    if(a<20 && (a>=10)){
    	printf("당신은 10대입니다.\n");
	}
    if(a <= 0 || a >= 100 ){
    	printf("이 세상 사람이 아니군요!\n");
	}
    
    return 0;
}

나이를 입력받게 하는 코드입니다. 10과 20사이를 쓰면 "당신은 10대입니다"가 출력, 0보다 작은 수 또는 100보다 큰 수를 입력하면 "이 세상 사람이 아니군요!"가 출력되는 코드입니다. &&은 AND라는 뜻의 연산자입니다. &&의 왼쪽 그리고 오른쪽 조건이 모두 만족해야지 true가 되고 한쪽이라도 틀린 조건이면 실행이 되지 않는 연산자입니다. 반면에 ||은 OR라는 뜻의 연산자입니다. ||은 여러분 키보드에서 Enter키 위에 \를 쓸수 있는 버튼을 shift를 누르고 \를 누르면 사용하실 수 있습니다. ||연산자는 왼쪽 오른쪽 조건중 하나만 참이여도 실행이 가능한 연산자입니다. 

 

 

그럼 오늘 강좌는 여기까지 살펴보도록하겠습니다. 오늘 배운 if문으로 이미 많은 뛰어난 코드를 작성하실 수 있습니다. 여러분 모두 각자 if문을 활용하여 다양한 코드를 만들어 보세요. 이해가 안되는 부분들 혹은 설명이 부족한 것 같은 부분들은 반드시 댓글로 남겨주시기 바랍니다!

댓글