Хорошо, поэтому не уверен, что apple.stackexchange - лучшее место для этого, но мне нужна помощь с этим кодом:
Цель: Попросить пользователя ввести количество раз,цикл должен быть повторен.Отправьте отзыв, если они введут его в неправильном формате
Проблема Если я введу десятичное число, оно просто принимает его как целое число и по-прежнему работает, как я могу предотвратить это или проверить этоДругой способ?
set correctEntry to false --initially assume false
repeat while correctEntry is false
--Let user put how many times it loops
set textToDisplay to "How often should this repeat?"
display dialog textToDisplay default answer "2.4"
set reps to text returned of the result
--Detailed check/feedback if they input wrong
try
--Begins as string, try making it an integer
set reps to reps as integer --coercion will should only work with integer
set correctEntry to true --remember won't get here if first statement fails
on error
try
--See if string can at least be converted to a number
set reps to reps as number
display dialog "Only integers"
on error
display dialog "That wasn't a number"
end try
-- still false here
end try
end repeat
--Only gets here if correctEntry becomes true
repeat reps times
say "You entered right"
end repeat
Кроме того, чтобы проверить, было ли введено отрицательное число, я бы просто использовал
if reps > 0
set reps to reps as integer
set correctEntry to true
else
display dialog "Must be positive"
Есть ли лучший способ?Даже встроенный «положительный» вызов?
Наконец, я использую http://www.fischer -bayern.de / as / as4as / AS4AS_e.pdf в качестве учебного пособия, однако я не уверенесли это достаточно хорошоЯ думал о том, чтобы пойти в Mac OS X Developer Library, но хотел бы узнать, как это сделать.У меня немного опыта работы с Perl, так что это не обязательно для начинающего.
Обновление: Найден этот сайт: http://www.macosxautomation.com/training/applescript/intro.html
Большое спасибо за любую помощь вамможет предоставить.
Update2: код работает, если я использую ту же проверку для целого числа во втором блоке try, что не так с первым.Почему все считается целым числом?Что еще более важно, почему использование предложенного оператора if не сработало, если поместить его в мой скрипт?