Soruları Sorma
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 50 / 56.
İlk özellik: Her soruyu sırayla sor ve her cevabın doğru olup olmadığını yazdır.
Soru bankası bu ders için sabit kodlanmıştır; oyuncunun cevapları stdin'den (her satırda bir tane olacak şekilde, sırayla) gelir.
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris")
]
for (_, text, answer) in questions {
print(text)
let given = readLine()!
print(given == answer ? "correct" : "wrong")
}Yukarıdan aşağıya oku: soruyu yazdır, bir satır oku, karşılaştır. Bir sonraki ders, büyük/küçük harf farkı veya baştaki ya da sondaki boşluklar nedeniyle başarısız olmaması için bu katı karşılaştırmayı esnetir.
Görev
KolayProgramını, önceki adımdaki kodun yerine bu questions soru bankasıyla başlat:
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]stdin’den üç satır oku (oyuncunun yanıtlarını, sırasıyla). Her soru için şunları yazdır:
- Soru metnini kendi satırında
- Verilen yanıt saklanan yanıtla tam olarak eşleştiğinde
correct, aksi hâldewrong
Üç sorunun tamamından sonra doğru yanıtların sayısını içeren Score: <n>/3 değerini yazdır.
4 / Paris / red girdisi için çıktı şöyledir:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3Kendin dene
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: her soru için metni yazdır, cevabı oku, doğru/yanlış olduğunu yazdır;
// ardından 'Score: <n>/3' yazdır
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Stringler Derinlemesine
Sayma ve İndekslerBüyük-Küçük Harf ve KırpmaStringlerde AramaBölme ve BirleştirmeAlt Stringleri DeğiştirmeÖzet - Kullanıcı Adı Kontrolü4Kümeler
Küme OluşturmaBirleşim ve KesişimFark ve Simetrik FarkAlt Küme ve Üst KümeÖzet - Etiket Filtresi7Proje - Alışkanlık Takibi
Projeye Genel BakışTamamlandı Olarak İşaretle10Proje - Quiz Motoru
Projeye Genel BakışSoruları Sorma2Aralıklar ve Adımlar
Kapalı ve Yarı AçıkStride (Adım)Aralık MetotlarıSwitch İçinde AralıklarÖzet - Takvim Izgarası5Yüksek Mertebeden Fonksiyonlar Bölüm 1
MapFilterReduceMap, filter, reduce zincirlemeÖzet - Kelime İstatistikleriKendi başına pratik yap: Swift playground