我有以下代码来检查数字是否是质数:
var isPrime = true
var number = "Four"
var i = 2
var numInt = Int(number)
if numInt == nil {
print("Sorry, this is not a valid number")
} else {
while i < number {
if number % i == 0 {
isPrime = false
}
i += 1
}
}
我正在尝试避免崩溃,因此如果数字不是实际的整数,则希望打印一条错误消息。因此,例如,在上面的示例中,如果用户输入数字作为字符串,则应该显示错误。
numInt在这里打印为nil,但是应用程序崩溃,因为即使if语句的该部分为true,它似乎也移至else语句并尝试使用字符串运行它。如何避免第二部分被运行?
答案 0 :(得分:0)
它不会崩溃,甚至不会编译。以下可能是您想要的:
var isPrime = true
var number = "Four"
var i = 2
if let numInt = Int(number) {
while i < numInt {
if numInt % i == 0 {
isPrime = false
}
i += 1
}
} else {
print("Sorry, this is not a valid number")
}
这将打印"Sorry, this is not a valid number"
。如果设置var number = "123"
,它将运行循环。