예제
1. 프로그램이 시작되면, 경비 시스템이 가동됩니다.
2. 사용자에게 경비 시스템 중단 여부를 묻습니다.
3. 선택지는 아래와 같습니다.
-> 1. 시스템 작동 중지, 2, 상태 유지
4. 1번을 선택하면, 해당 안내 문구와 함께, 시스템이 종료 됩니다.
5. 2번을 선택하면, 상태가 계속해서 유지 됩니다.
6. 1 또는 2번을 제외한 번호를 선택했을 경우도 처리 합니다.(알 수 없는 번호라고 나오면서 재선택 해 달라는 문구를 넣습니다.)
코드
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
int main(void){
bool is_run = true;
int select_key = 0;
while(is_run){ // true라면 계속 실행.
printf("\n");
prinf("현재 경비 시스템이 작동 중 입니다. \n");
prinf("원하시는 동작을 선택 해 주세요. \n");
printf("\n");
printf("1. 시스템 작동 중지 \n");
printf("2. 상태 유지 \n");
scanf("%d", &select_key);
if(select_key == 1){
is_run = false; //while 탈출
}else if(select_key == 2){
prinf("경비상태를 계속 유지 합니다. \n");
}else {
printf("알수 없는 번호[%d]입니다. 재입력해주세요.\n", select_key);
}
}
prinf("경비 시스템이 종료 되었습니다. \n");
return 0;
}
잡담
매개변수값이 없으면 void를 넣어줘야된다니, 자바스크립트에서는 없으면 비워둬도 됐는데,
정말 엄격한 언어인것 같았습니다.
기본으로 is_rund = true를 두고, 빠져나올때는 is_run = false;를 주면서 빠져나오는 방법도
신선했습니다.
reutrn 0;의 의미가 궁금해서 조금 찾아보았습니다.
return 0;(혹은 return;)은 해당 함수를 정상적으로 끝내고서 운영체제(Windows, Linux)에게 기술한 값을 반환하고 현재 실행 중인 해당 함수를 벗어나겠다는 뜻이다.
즉, return문은 함수의 반환 값을 전달하는 동시에 현재 수행 중인 함수를 끝내는 두 가지 기능을 한다. 그래서 return 0; 이후의 코드는 수행되지 않는다.