프로그래밍 공부
작성일
2023. 3. 3. 19:32
작성자
WDmil
728x90

무작위 난수 를 이야기한다. rand()를 사용하여 무작위의  수를 추출하여 출력할 수 있다.

이러한 rand를 사용하기 위해서는 표준 입출력을 가져오는 것 처럼 stdlib.h을 새로 호출해주어야 한다.

 

위와 같이 stdlib.h를 호출하면 난수 생성기를 사용할 준비가 되었다.

위와 같은 방식으로 %d에 rand()하여 랜덤한 수를 출력할 수 있다.  만약, 내가 여기서 범위를 제한하고 싶다고 하면,

이렇게 해주면 된다. 그러면  rand로 나타나게 되는 데이터가 생성되는데, 그 생성 데이터에 10으로 나눈 값의 나머지를 출력하게 되면, 1~10까지의 데이터가 무작위로 나타나게 되는 원리 이다. 여기서 내가 2~11까지로 제한하고 싶다고 한다면,

로 나타낼 수 있다.

위와 같이 1을 더해서 출력해줄 수 있다. 그러나 실행 시 출력값이 계속 똑같이 나오는걸 볼 수 있을것이다.

위와 같지는 않지만 출력할 때마다 같은 수가 나온다.

우리는 이러한 데이터의 고정을 해결하기 위해 srand()함수를 사용하여 랜덤한 시드를 다시 넣어서 출력해주어야 한다.

이러한 시드값은 시간값을 넣어서 계속 바꾸어줄 수 있을것이다. 이것을 어떻게 사용하는지 보면,

 

위쪽에 time.h를 선언한다.

time를 선언하면 사용할 수 있다. os에 time을 호출하여 시간값을 가져와준다.

그리고 맨 밑과 같이 선언해주면 된다./

srand에 들어갈 상수는 time이고 time에는 NULL을 넣어 한번 초기화 시켜준 후 시간값을 호출하게 된다. 그리고 시간은 언제나 흐르고 -가 될수 없기때문에 unsinged를 넣어서 범위값을 늘려주면된다.

출력해보자.

변수가 바뀌는걸 볼 수 있을것이다.


while문 무한반복문을 살펴보자.

while은 일정 조건하에 내부의 명령문을 무한으로 반복하여 수행시킬 수 있다. 사용법을 살펴보자.

생성은 이런식으로 만들어주면 된다.

우리의 HelloWorld를 계속 출력해주는 프로그램을 만들어보자.

이렇게 출력이 계속되는걸볼 수 있다. (bool은 C++기준에서 작성하기 때문에 bool을 쓰지않고 0 또는 1을 넣어주어도 된다.)

 

while 에서 간단한 이동을 할 수있는 코드를 작성해보자.

위와 같이 작성해주면 키 입력을 받아올 수 있다. 여기서 _getch();을 사용하기 위해서는.

를 넣어주어야 한다.

conio.h를 호출하여 코드에 넣어주어야 한다.


dowhile을 사용해보자. dowhile은 일반 while과 다르게 do를 넣어서 동작해주는 while문이다. whlie문과 다르게 do안에 있는 명령문을 일단 한번 실행 하고 종료하는 과정이 들어간다. while과 차이점은,

dowhile = 일단 한번 실행 후에 조건식을 판별하여 다시 반복할지 확인한다.

while = 조건에 맞지 않으면 실행을 하지 않는다.

 

잘 사용하지는 않지만 대표적인 dowhile문을 사용하는 프로그램을 작성해보자.

위와 같이 작성할 수 있다.

여기서 const 는 상수화 한다는 뜻 으로 다음에 secretCode를 변화시킬 수 없게 만들겠다 라는 뜻 이다. 이후에 변수 수정하는 ++ 나 --를 넣어도 수정되지 않고 오류가 출력되게 된다.

실행 예시


for문을 사용해보자. for문은 while과 다르게, 조건을 넣어서 일정구간만 반복하게 만드는 용도로 사용한다.

두가지 방법이 있다. 기본적으로 설정해서 일정 횟수만 반복하는방법과 while과 같이 무한루프로 돌리는 방법이 있다. 두가지 다 살펴보자.

이런 형태로 무한루프를 돌리거나, 일정 횟수 반복되게 만들 수 있다. 한번 실행해보자.

무한 루프 되는 모습을 볼 수 있다.

for문을 사용해서 일정 범위 값을 출력해보자.

각 변수를 2개를 조건으로 넣을 수 있고, for문에서 다른 조건을 넣어 줄 수 있다.

여기서 continue는 해당되는 조건이 왔을 때 continue 이후의 코드를 실행하지 않는다. 라는 명령문 이다.

알파벳으로 돌려서 확인할수 도 있다.

 

728x90