我正在尝试找到一种方法来使applescript显示奇数和偶数。
这些数字甚至是4
这些数字甚至是6
这些数字甚至是8
这些数字甚至是10
这些数字是奇数3
这些数字是奇数5
这些数字是奇数7
这些数字是奇数9
我尝试查找它,但是我对applescript的了解不深。
set numberList to {3, 4, 5, 6, 7, 8, 9, 10}
repeat with i in numberList
repeat while i mod 2 = 0
display dialog "These numbers are even " & i
end repeat
end repeat
set numberList to {3, 4, 5, 6, 7, 8, 9, 10}
repeat with numberList in numberList
repeat while numberList mod 2 = 1
display dialog "These numbers are odd " & numberList
end repeat
end repeat
没有错误。只是陷入无限循环。 只需显示:这些数字甚至一遍又四遍
答案 0 :(得分:0)
repeat with X in Y
表单逐步遍历Y列表,循环变量X包含列表中的当前项目。您的代码段正在使用附加的重复循环,当满足某些条件时,该循环将继续,但是由于比较变量在内部循环内没有更改,因此一旦测试正确,重复就永远不会结束。
您只需要用简单的if ... then
比较来替换内部重复循环,例如:
set numberList to {3, 4, 5, 6, 7, 8, 9, 10}
repeat with i in numberList
if i mod 2 = 0 then
display dialog "This number is even: " & i
end if
end repeat
set numberList to {3, 4, 5, 6, 7, 8, 9, 10}
repeat with i in numberList
if i mod 2 = 1 then
display dialog "This number is odd: " & i
end if
end repeat
答案 1 :(得分:0)
您需要用while
条件测试子句替换每个内部重复循环,即if...then
循环,例如:
set numberList to {3, 4, 5, 6, 7, 8, 9, 10}
repeat with i in numberList
if i mod 2 = 0 then display dialog "This number is even: " & i
end repeat
if...then
子句可以扩展为包含一个else
块,该块将在测试条件失败时执行。这样可以将您的两个重复循环组合为一个循环,仅循环遍历您的列表一次,一次即可获得赔率和偶数的结果:
set numberList to {3, 4, 5, 6, 7, 8, 9, 10}
repeat with i in numberList
if i mod 2 = 0 then
-- This block will only run if the number is even
display dialog "This number is even: " & i
else
-- This block will only run if the number is not even
display dialog "This number is odd: " & i
end if
end repeat