더북(TheBook)

7.4.5 어항에 물주기

이제 사용자가 선택한 어항에 물을 줍시다.

사용자가 입력한 숫자의 어항에 물을 줘야 하는데, 어항은 배열로 선언되어 있습니다. 앞에서 배열의 값에 접근할 때 포인터 변수를 사용했습니다. 이 역할을 할 포인터 변수 cursor를 선언합니다. 포인터 변수 cursor는 다른 함수에서도 사용하므로 전역변수로 선언합니다.

어항의 시작 주소는 어항 배열의 이름인 arrayFish의 값입니다. 이 값을 포인터 변수 cursor에 넣으면 cursor 포인터 변수로 배열에 접근해 각 어항에 물을 주는 동작을 수행할 수 있습니다.

그림 7-15 cursor 포인터 변수로 arrayFish 배열 접근

어항에 접근해서 물을 줄 때는 2가지 조건이 있습니다. 조건이 2가지이므로 if-else if 문을 사용합니다.

첫째, 사용자가 선택한 어항의 물 높이가 0이어서 이미 물고기가 죽었다면 해당 어항에 물을 줄 필요가 없겠죠? 이런 경우에 물을 주지 않아야 합니다.

어항에는 포인터 변수 cursor로 접근합니다. 몇 번 어항인지는 num 변수로 알 수 있습니다. 배열은 0부터 시작하니 num - 1을 해야 실제 배열의 인덱스가 됩니다. 따라서 cursor[num - 1]의 값이 0과 같거나 작을 때는 해당 번호의 어항은 물고기가 이미 죽어서 물을 주지 않는다고 출력합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.