포스트(post)

8. 숫자 입력받기 - (getint), (getreal)

목표

사용자로부터 숫자를 입력받는 (getint)함수와 (getreal)함수를 사용 해 봅시다.


getint & getreal

사용자로부터 숫자를 입력받는 함수에는 (getint)(getreal)이 있습니다. getint에서 intInteger의 약자로, 소숫점이 없는 정수를 의미하구요. getreal에서 realRealNumber의 약자로, 소숫점을 포함할 수 있는 실수를 의미합니다.


사용형식

getint

1
(getint "메시지")

getreal

1
(getreal "메시지")

(getint)함수와, (getreal)함수 모두 아무 값도 넣지 않고 단독으로 사용할 수 있지만, 사용자가 어떤 값을 입력해야 하는지 알려줘야 하므로, 메시지를 넣어서 사용합시다.


사용예시

command함수로 원을 그려봅시다. 사용자로부터 원의 중심점 좌표와 반지름을 입력받습니다.

1
2
3
4
5
(command
	"circle"
	(getpoint "\n원의 중심이 위치할 좌표를 클릭 해 주세요")
	(getint "\n원의 반지름을 입력 해 주세요 : ")
)

circle명령어는 처음에 원의 중심점, 그 다음 원의 반지름을 입력받습니다. 여기서 중심점은 (getpoint)함수로, 반지름은 (getint)함수를 사용하여 circle명령어를 실행 해 보겠습니다.

여기서는 (getint) 함수를 사용했으므로, 사용자로부터 반지름을 입력 받을 때, 정수만 입력받을 수 있습니다.

만약 사용자가 소숫점이 포함되어 있는 실수를 입력하게 되면, 이와 같이 에러메시지가 표시되며, 정수를 입력받을 때 까지 다음으로 진행이 되지 않습니다. 반지름을 정수로 받아야 할 특별한 이유가 없다면, 여기서는 (getint)함수보다는 (getreal)함수를 사용하는 것이 더 좋습니다.


getint? getreal?

숫자를 입력 받을 때 두 함수 중 무엇을 사용하는 것이 좋을까요? 상황에 따라서 더 적절하다고 판단되시는 것을 사용하시면 됩니다.

갯수, 인덱스처럼 소숫점을 가지면 안 되는 값을 입력받아야 할 때, 또는 정치수로 값을 입력받고 싶을 때는 (getint)함수를 사용하고, 비율, 치수 등 소숫점이 포함 될 수 있거나, 굳이 정수를 입력받을 필요가 없을 때(getreal)함수를 사용하면 됩니다.

© IsaacGo. All rights reserved.