Swiftとプログラミング全般で非常に新しいので、どこに問題があるかわかりません。既存のトピックで答えを見つけようとしました - できませんでした。前もって感謝します。致命的なエラー:インデックスが範囲外です(アレイ)
func smartAssigning(names: [String], statuses: [Bool], projects: [Int], tasks: [Int]) -> String {
//beginig
var collect: [Int] = [], nameLast = 0
var candidateNumber: [Int] = []
for x in 0...statuses.count {
//Defines who is working
if statuses[x] == false {
collect.append(x)
} else {}
}
// Checks for min tasks assigned among those not on vacation
let rt: Int = tasks.min()!
let rp: Int = projects.min()!
for i in collect {
if tasks[i] == rt {
candidateNumber.append(i)
} else {}
}
// if there is only 1 with min tasks - returns his number in array
if candidateNumber.count == 1 {
nameLast = candidateNumber[0]
} else {
// checks for min projects
for e in candidateNumber {
if projects[e] == rp {
nameLast = e
}
}
}
return names[nameLast]
}
smartAssigning(names: ["sd", "dfsd","dfsdf"], statuses: [true, false, false], projects: [2, 1, 1], tasks: [3, 2, 1])
画面:
最初のエラーが0でxの 'である... statuses.count'-あなたは*デバッグ*しようとしました:
この全体のコードは、単一の
filter(_:)
式を使用して書き込むことができます問題?この機能をシングルステッピングすると、すぐに問題が明らかになります。 –名前、ステータス、プロジェクト、およびタスク配列の要素はすべて結ばれていますか?例えば。最初の名前は最初のステータス、最初のプロジェクト、最初のタスクに結びついていますか? – Alexander
はい、そうです。しかし私は私の問題を発見した。あなたとMartin R. Damnに感謝します。とても簡単。なぜXCODEはそれをエラーとして認識しないのですか? –