8. 숫자 입력받기 - (getint), (getreal)
목표
사용자로부터 숫자를 입력받는 (getint)
함수와 (getreal)
함수를 사용 해 봅시다.
getint & getreal
사용자로부터 숫자를 입력받는 함수에는 (getint)
과 (getreal)
이 있습니다. getint에서 int는 Integer의 약자로, 소숫점이 없는 정수를 의미하구요. getreal에서 real은 RealNumber의 약자로, 소숫점을 포함할 수 있는 실수를 의미합니다.
사용형식
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)
함수를 사용하면 됩니다.