원래는 10월 14일에 배운 내용이지만, 카카오 관련 문제로 인해서 이제야 쓰게 되었다...
덕분에 조금 긴가민가한 기억으로 작성하여서 조금 뒤죽박죽일 수 있다.
한 번에 몰아서 써야 되는 내 인생이 레잔도...
랜덤, 난수
들어가기에 앞서 연산자 / 와 % 의 차이를 다시 확인해보자.
연산자 / 는 나누고 나온 몫을 출력해주고, 연산자 % 는 나누고 남은 나머지를 출력해준다.
따라서 연산자 % 를 사용하여 나오는 값을 가지고 여러 조건들을 만들어 낼 수 있으니 잘 기억해두면 좋다.
우선 랜덤 함수를 쓰기 전에 위와같이 <time.h>파일을 불러와야 한다. 현재 시간을 불러오는 역할을 하는데,
바로 현재 시간을 불러와 seed 값에 넣어 출력 결과가 매번 달라지게 만들기 위해서이다.
만약 위의 srand()를 입력하지 않고 랜덤함수를 사용하면 무작위 값이 나오지만, 그 뒤로 계속 출력해도 같은 값만 나온다.
바로 그 문제를 해결하기 위해서 srand() 함수에 현재시간을 넣어줌으로써 출력 결과가 매번 달라지게 된다.
랜덤 함수를 그냥 사용하면 0부터 최대 32767 사이의 무작위 값이 나오게 된다.
하지만 그 범위를 지정해주고 싶다면, 아까 본 나머지 연산자 %를 사용하면 된다.
Number % A(범위 개수) ☞ 0 ~ (A - 1) 의 범위에서 랜덤 함수가 돌아간다.
이와 같이 rand() % 10 은 0 ~ 9 까지의 범위에서만 랜덤이 돌아가게 된다.
나는 이 랜덤 함수를 이용하여 컴퓨터와 하는 가위바위보 게임을 만들어 보았다.
배열(array)
배열은 무언가를 나열하는 뜻을 가지고 있다. 프로그래밍에서도 비슷한 느낌인데, 배열은 변수를 담을 수 있는 공간을
지정한 개수만큼 나열해준다고 보면 된다.
배열의 선언 방법은 위와 같이 "자료형 변수이름[ index ] "같이 선언해주면 된다.
그리고 선언해준 자료형의 범위는 0 ~ (index - 1)의 범위를 나타낸다.
배열의 정의와 호출은 위 사진과 같이 해주면 된다. 하지만 무언가 비효율적인 방식인 것 같지 않은가?
만약 배열의 길이가 100, 1000 단위를 넘어가면 과연 어떻게 해야 할까?
for 문
바로 for 문을 사용하면 배열의 정의와 호출을 보다 간편하게 줄여서 할 수 있다.
앞서 반복문 while문에 대해서 배운 적이 있다. 바로 이 for문 또한 반복문 중 하나이다.
while문을 사용하면서 반복 조건이 조금 단순해서 세분화된 조건의 필요성을 느꼈을 것이다.
그때 바로 이 for문을 사용하는 것이 좋은 방법이다.
for를 입력 후 tap버튼만 누르면 자동으로 완성된 식이 출력이 된 것을 볼 수 있다.
위 사진을 보고 하나하나가 무슨 역할을 하는지 한번 알아보도록 하자.
for문 안에서 사용할 수 있는 지역변수의 초기값을 먼저 정해준다.
다음으로 for문이 몇 번 반복할지 정해주는 조건문을 정해준다. 원하는 횟수만큼 반복시킬 수 있다.
마지막으로 증감식을 통해 한 번씩 반복할 때마다 앞서 설정한 지역변수의 값을 증가시켜준다.
for문의 작동 방식은 이렇다.
초기값 - 조건문 - 실행 - 증감식 - 조건문 - 실행 - 증감식 - 조건문 - 실행 - 증감식 - 조건문 - 실행...
이런 식으로 조건문이 틀릴 때까지 반복하는 것이 특징이다.
그래서 배열을 하나하나 여러 번 정의할 필요 없이, for문을 사용하면 알아서 정해둔 횟수만큼 반복하여
원하는 값을 넣을 수 있다. 때문에 배열과 for문은 떼려야 뗄 수 없는 사이인 것이다.
위와 같이 배열 정의에 for문을 사용하게 된다.
'C++' 카테고리의 다른 글
C++ 배우기 7(지시자break / continue, 형변환) (2) | 2022.10.18 |
---|---|
C++ 배우기 6(이중for문, 스왑, 셔플) (0) | 2022.10.18 |
C++ 배우기 4(반복문 / 논리연산자 / 증감연산자) (0) | 2022.10.13 |
C++ 배우기 3(비교 연산자, if문) (0) | 2022.10.12 |
C++ 배우기 2(자료형과 연산자) (0) | 2022.10.11 |