ユーザーが数字を入力するアプリを作成しようとしています。アプリはそれがプライムかどうかを判断します。ここに私のコードです:私のコードでは、一部の値が機能しないのはなぜですか?
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で均等に割り切れるにもかかわらず...誰も私のコードの欠陥を説明することができますか?
ようこそスタックオーバーフロー!デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようですが、良いデバッガを使用するとrプログラムを1行ずつ実行して、期待どおりにどこからずれているかを確認します。これはプログラミングをする場合に不可欠なツールです。さらに読む:[小さなプログラムをデバッグする方法](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/) –