728x90
#신호등을 만들어본 코드
#include <iostream>
#include <unistd.h>
using namespace std;
int main()
{
cout << "엔터를 누르면 시작";
cin.ignore();
int i=1;
int j=0;
while(true){
for (i = 1; i <= 4; i++)
{
cout << "신호등" << i << "\n";
for(j= 0; j<= 10; j++){
sleep(1);
cout << j <<"\n";
}
}
}
return 0;
}
#목표
- 명령어를 누르기 전에 프로그램을 대기시킨다.
- 4개의 신호등
- 신호 당 10초의 간격을 주고 그 숫자를 화면에 표시한다.
- 마지막 신호가 끝나면 다시 첫 번째 신호로 돌아와 반복한다.
1. 어떻게 작동할까?
- enter를 누르면 함수가 실행된다.
- 신호등은 순서대로 출력된다.(1->2->3->4)
- 마지막 신호가 끝나면 다시 처음 신호로 돌아온다.(4->1->2...)
- 신호마다 10초의 시간이 있고 시간이 끝나야 다음 신호로 넘어간다.
2. cin.ignore
cout << "엔터를 누르면 시작";
cin.ignore();
ignore은 주어진 범위까지의 입력을 무시하는 기능이다.
괄호 안에 범위를 주지 않고 사용하니 enter키 외에 다른 키를 눌러도 아래 함수가 실행되지 않았다.
3. for 반복문
for (i = 1; i <= 4; i++)
{
cout << "신호등" << i << "\n";
for(j= 0; j<= 10; j++){
sleep(1);
cout << j <<"\n";
}
}
자주 쓰는 for 반복문이다.
변수 i는 신호등 개수이고 변수 j는 다음 신호등으로 넘어갈 때 필요한 10초이다.
여기서 j에게 딜레이를 주지 않으니 순식간에 1부터 10까지 출력되고 다음으로 넘어가게 되었다.
그래서 반복 한번 당 1초의 시간을 주기 위해 sleep함수를 사용했다. (사용할 때 #include <unistd.h>를 넣어줘야 한다.)
4. 무한 반복
while(true){
for (i = 1; i <= 4; i++)
{
cout << "신호등" << i << "\n";
for(j= 0; j<= 10; j++){
sleep(1);
cout << j <<"\n";
}
}
}
for문으로만 마무리를 지으면 신호등 4번에서 실행이 끝나고 만다.
하지만 신호등은 끄기 전까진 계속 반복돼야 하기 때문에 for문을 while문으로 감싸주었다.
5. 결과
6. 보완 계획
1. 보행자 신호등도 만들어서 동시에 진행되게 해야함
2. 완벽하게 진행되면 그래픽을 추가해 보기 좋게 만들고 싶다.
#공부한 것을 정리해 보았습니다.
#틀린 내용이 있거나 추가할 내용이 있으면 알려주세요!
↓↓↓↓↓↓↓↓
728x90
'컴퓨터 공부 > C++' 카테고리의 다른 글
[C++] 간단한 계산기를 만들어 보았다. (1) | 2021.03.20 |
---|---|
[C++] 무작위로 배열 값 출력해보기 (0) | 2021.03.17 |
1-2. 마름모 패턴 피라미드를 만들어보자 (0) | 2020.10.25 |
1-1. 삼각형 피라미드 패턴을 만들어보자 (0) | 2020.10.22 |
1. 피라미드 패턴을 만들어보자 (0) | 2020.10.19 |
댓글