字典键项的循环

时间:2018-05-06 15:35:24

标签: swift loops nested-loops

如何修复代码,以便循环会询问字典中每个项目的问题?

*编辑代码以使我想要做的更清楚。我希望代码在移动到字典中的下一个项目之前停止并等待输入。

   import Foundation
import UIKit



var squad = [1:"Arsh", 2:"Arbab", 3:"Ayush", 4:"KC", 5:"Jaski", 6:"Gunny", 7:"Harsh", 8:"Nagib", 9:"Rithin", 10:"Gursh", 11:"Sonny"]
let coming = "Yes"

let notComing = "No"

var attendees = [String]()

for ( key , person) in squad {
     // key == 1

//   key = counter

    // repeat {

    print("Are you attending \(person)?")
    let response = readLine()
        print(response as Any)

        if response == coming {
             attendees.append(person)
        }

        else if response == notComing {
            print("Sorry to hear that")
        }

        else {
            print("Invalid Input")
        }


       // }  while key <= 11

        // key += 1
    }




print(attendees)
print(attendees.count)

1 个答案:

答案 0 :(得分:0)

要尝试readLine()等键盘输入功能,请从Xcode菜单中选择创建项目:

档案&gt;新&gt;项目&gt; macOS&gt;命令行工具

并在Xcode中运行它,Debugging Console窗格将作为终端。这里是你要找的代码:

import Foundation

var squad = [1:"Arsh", 2:"Arbab", 3:"Ayush", 4:"KC", 5:"Jaski", 6:"Gunny", 7:"Harsh", 8:"Nagib", 9:"Rithin", 10:"Gursh", 11:"Sonny"]

let coming = "yes"
let notComing = "no"

var attendees = [String]()
let array = squad.map {return ($0.key, $0.value)} // Turn the dictionary to an array of tuples
let sortedArray = array.sorted(by: {$0.0 < $1.0 }) // Sort the array by the first element of the tuple

// Ask the squad one by one
for ( _ , person) in sortedArray {

    print("Are you attending \(person)?")
    if let response = readLine() {
        //remove white spaces and all letters lowercased so that "Yes", "yes" and "YES" would all be accepted
        if response.lowercased().trimmingCharacters(in: .whitespaces) == coming {
            attendees.append(person)
        }

        else if response.lowercased().trimmingCharacters(in: .whitespaces) == notComing {
            print("Sorry to hear that")
        }

        else {
            print("Invalid Input")
        }
    }
}

print("attendees : \(attendees)")
print("attendees.count = \(attendees.count)")