C 언어 상태기

1742 단어 C 기초
#include 
#include

int main()
{
	
	int num = 0;
	int i = 0;
	int state = -1;
	srand((unsigned)time(NULL));
	while(1)
	{	
		if(i>50)return 0;

		sleep(1);
		switch(state)
		{
			case -1:
				if(i<10)
				{
					printf("Starting ...
"); } else if(i>=10 && i<=30) { printf("From Starting to Running ...
"); state = 0; } else if(i>30) { printf("From Starting to Ending ...
"); state = 1; } break; case 0: if(i<10) { printf("From Starting to Exception ...
"); state = -1; } else if(i>=10 && i<=30) { printf("Running ...
"); } else if(i>30) { printf("From Runing to Ending ...
"); state = 1; } break; case 1: if(i<10) { printf("From Ending to Exception ...
"); state = -1; } else if(i>=10 && i<=30) { printf("From Ending to Running ...
"); state = 0; } else if(i>30) { printf("Ending ...
"); state = 1; } } i=rand()%61+0; printf("i = %d
",i); } }

상태값state는 세 가지가 있는데 각각 -1,0,1이다.
-1은 전원을 켜고 있음을 나타내고, 0은 작업을 하고 있음을 나타내며, 1은 전원을 끄고 있음을 나타낸다.
i<10은 기계가 켜져 있음을 표시하고, >=10 & &<=30은 기계가 켜져 있음을 표시하며, >30은 기계가 꺼지고 있음을 나타낸다.
우리는 기계가 어떤 상태에서 다른 상태로 변하는 것을 똑똑히 알고 해당하는 프린트(작업)를 할 수 있다.
 
결과는 다음과 같습니다.
Starting ... i = 15 From Starting to Running ... i = 36 From Runing to Ending ... i = 31 Ending ... i = 4 From Ending to Exception ... i = 56

좋은 웹페이지 즐겨찾기