ฉันสับสนเล็กน้อยกับคำตอบที่ Xcode ให้การทดสอบนี้ในคู่มือภาษาโปรแกรม Swift:
// Use a for-in to iterate through a dictionary (experiment)
let interestingNumbers = [
"Prime": [2, 3, 5, 7, 11, 13],
"Fibonacci": [1, 1, 2, 3, 5, 8],
"Square": [1, 4, 9, 16, 25]
]
var largest = 0
for (kind, numbers) in interestingNumbers {
for number in numbers {
if number > largest {
largest = number
}
}
}
largest
ผมเข้าใจว่าเป็นพจนานุกรมจะถูกวางตัว, largest
จำนวนมากที่สุดจะถูกกำหนดให้ตัวแปร อย่างไรก็ตามฉันสับสนว่าทำไม Xcode จึงบอกว่าlargest
ตั้งค่า 5 ครั้งหรือ 1 ครั้งหรือ 3 ครั้งขึ้นอยู่กับการทดสอบแต่ละครั้ง
เมื่อดูรหัสฉันเห็นว่าควรตั้งค่า 6 ครั้งใน "Prime" เพียงอย่างเดียว (2, 3, 5, 7, 11, 13) จากนั้นควรข้ามตัวเลขใด ๆ ใน "Fibonacci" เนื่องจากตัวเลขเหล่านั้นน้อยกว่าจำนวนที่ใหญ่ที่สุดซึ่งปัจจุบันตั้งค่าเป็น 13 จาก "Prime" จากนั้นควรตั้งค่าเป็น 16 และสุดท้าย 25 ใน "Square" ให้ผลรวม 8 ครั้ง
ฉันขาดอะไรบางอย่างที่ชัดเจนอย่างสิ้นเชิง?