(以前の質問の続きです 以前の質問

以下のコードにおいて,

  1. endTimeが数値に変換可能で,かつstartTimeより大きい場合にrepeatを抜ける
  2. loopCountが1以上の場合にrepeatを抜ける

という処理をしようとしているのですが,条件を満たしているように見える場合でもexit repeatが実行されません.
長いのですが,書いているコードをすべて載せます.
なぜexit repeatが実行されないのかわかりません.
どうぞご教授願います.

choose file
set fileName to result

setStartTime("set start time (seconds)")
on setStartTime(thePrompt)
    repeat
        display dialog thePrompt default answer ""
        set theString to text returned of result
        try
            set num to theString as number
            exit repeat
        end try
    end repeat
    return num
end setStartTime
set startTime to result

setEndTime("set end time (seconds)")
on setEndTime(thePrompt)
    repeat
        display dialog thePrompt default answer ""
        set theString to text returned of result
        try
            set num to theString as number
            if num > startTime then exit repeat
        end try
    end repeat
    return num
end setEndTime
set endTime to result

setLoopCount("set how many times the video will be played")
on setLoopCount(thePrompt)
    repeat
        display dialog thePrompt default answer ""
        set theString to text returned of result
        try
            set num to theString as integer
            if num >= 0 then exit repeat
        end try
    end repeat
    return num
end setLoopCount
set loopCount to result

tell application "QuickTime Player"
    activate
    set tDoc to open fileName
    tell tDoc
        repeat while (loopCount > 0)
            set the presenting to true
            set current time to startTime
            play
            repeat while (current time < endTime)
                delay 1
            end repeat
            set loopCount to (loopCount - 1)
        end repeat
        stop
    end tell
    close tDoc
end tell