Zadawanie pytań
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 50 z 56.
Pierwsza funkcja: zadawaj każde pytanie po kolei i wypisuj, czy każda odpowiedź była poprawna.
Baza pytań jest zakodowana na stałe na potrzeby tej lekcji, a odpowiedzi gracza są pobierane ze standardowego wejścia (po jednej w każdym wierszu, po kolei).
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")
}Czytaj od góry do dołu: wypisz pytanie, odczytaj jeden wiersz, porównaj. W następnej lekcji złagodzisz to ścisłe porównanie, aby nie zawodziło z powodu wielkich liter ani zbędnych białych znaków.
Wyzwanie
ŁatwyDana jest baza questions. Odczytaj trzy wiersze ze standardowego wejścia (odpowiedzi gracza, w podanej kolejności). Dla każdego pytania wypisz:
- Treść pytania w osobnym wierszu
correct, gdy podana odpowiedź jest dokładnie równa zapisanej odpowiedzi, w przeciwnym raziewrong
Po wszystkich trzech pytaniach wypisz Score: <n>/3 z liczbą poprawnych odpowiedzi.
Dla wejścia 4 / Paris / red wynikiem jest:
2 + 2?
correct
Capital of France?
correct
Color of grass?
wrong
Score: 2/3Spróbuj swoich sił
let questions: [(String, String, String)] = [
("math", "2 + 2?", "4"),
("geo", "Capital of France?", "Paris"),
("science", "Color of grass?", "green")
]
// TODO: dla każdego pytania wyświetl tekst, odczytaj odpowiedź, wyświetl informację, czy odpowiedź jest poprawna, czy błędna;
// następnie wyświetl 'Score: <n>/3'
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słówPoćwicz samodzielnie: Edytor online Swift