gpt4 book ai didi

swift - 为什么某些值对我的代码不起作用?

转载 作者:行者123 更新时间:2023-11-30 10:01:59 25 4
gpt4 key购买 nike

我正在尝试创建一个应用程序,让用户输入一个数字,然后应用程序将确定它是否是素数。这是我的代码:

var arr: [Int] = [2, 3, 4, 5, 6, 7, 8, 9]
let text = Int(textField.text!)!
for x in arr {
if text == 1 {
iLabel.text = "NOT PRIME!"
}
else if x == 2 || x == 3 || x == 5 || x == 7 {
iLabel.text = "IT'S PRIME!"
}
else if text % x == 0 {
iLabel.text = "NOT PRIME!"
break
}
else if text % x != 0 {
iLabel.text = "IT'S PRIME!"
break
}
}

在大多数情况下,这是有效的。然而,当我将变量“text”设置为等于 82 时,结果是“IT'S PRIME!”尽管它可以被 2 整除...任何人都可以解释我的代码中的缺陷吗?

最佳答案

if text == 1 else if x == 2 else if text % x == 0
^ ^ ^

它将触发 x=2 并在进入模/余数检查之前设置“IT'S PRIME`,然后跳过该检查。它将在循环 3、5 中触发相同的事情, 7.

82 不能被 8 或 9 整除,因此不会在循环结束时触发余数检查并意外输出正确的值,从而在输出框中留下“IT'S PRIME”,而不实际检查它是否是素数。

关于swift - 为什么某些值对我的代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37976809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com