Quiz oynatma
- Dart kursu
- Orta seviye
- Ders 38/116
- 6 dk
run metoduyla soruları sırayla sormayı öğrenirsin.
play metodu
Quiz'i oynatmak için play metodunu yazacağız. Bu metot, listedeki her soruyu numaralandırarak ekrana yazdırır. for döngüsü ile listede dolaşılır.
Örnek: void play() { for (var i = 0; i < questions.length; i++) { print('${i + 1}. ${questions[i].text}'); } }. Burada i sıfırdan başlar, questions.length'e kadar gider. questions[i] ile i'inci soruya erişilir.
${i + 1} string interpolation'dur; soru numarasını verir. ${questions[i].text} ise soru metnidir.
Numaralı liste çıktısı
play metodu çağrıldığında her soru 1. Başkent nerede? biçiminde yazdırılır. ${i + 1} ifadesi sıfır tabanlı indeksi bir tabanlı numaraya çevirir.
İki soru eklendiyse çıktı şöyle olur: 1. Başkent nerede? ve 2. Kaç gün bir hafta?. Her soru ayrı satırda görünür.
Bu yapı, gerçek quiz uygulamalarının temelidir: soruları sırayla göstermek. Sonraki derslerde cevapları değerlendirmeyi öğreneceğiz.
Uygulama play metodunu ekle
Quiz sınıfına void play() metodu ekle. Metot bir for döngüsü ile questions listesini dolaşsın ve her soruyu ${i + 1}. ${questions[i].text} biçiminde yazdırsın. main zaten iki soru ekliyor; quiz.play() çağrısını ekle.
Başlangıç kodu
class Question {
String text;
String answer;
Question(this.text, this.answer);
}
class Quiz {
List<Question> questions = [];
void addQuestion(Question q) {
questions.add(q);
}
// play metodunu ekle: soruları numaralandırarak yazdır
}
void main() {
var quiz = Quiz();
quiz.addQuestion(Question('Başkent nerede?', 'Ankara'));
quiz.addQuestion(Question('Kaç gün bir hafta?', '7'));
quiz.play();
}Örnek çözüm
class Question {
String text;
String answer;
Question(this.text, this.answer);
}
class Quiz {
List<Question> questions = [];
void addQuestion(Question q) {
questions.add(q);
}
void play() {
for (var i = 0; i < questions.length; i++) {
print('${i + 1}. ${questions[i].text}');
}
}
}
void main() {
var quiz = Quiz();
quiz.addQuestion(Question('Başkent nerede?', 'Ankara'));
quiz.addQuestion(Question('Kaç gün bir hafta?', '7'));
quiz.play();
}Beklenen çıktı
1. Başkent nerede? 2. Kaç gün bir hafta?
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 for döngüsü koşulu
void play() {
for (var i = 0; i < ____.length; i++) {
print('${i + 1}. ${questions[i].text}');
}
}
void play() {
for (var i = 0; i < questions.length; i++) {
print('${i + 1}. ${questions[i].text}');
}
}
Açıklama: questions.length kadar döngü döner.
2 Döngü parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
var i = 0 |
Başlangıç |
i < questions.length |
Koşul |
i++ |
Artış |
questions[i].text |
Soru metni |
3 questions[i] neyi verir?
var q = questions[i];- Soru sayısını
- i'inci Question nesnesini Doğru cevap
- Bir liste döndürür
- Bir sayı döndürür
Açıklama: questions[i] listedeki i'inci Question nesnesini verir.