CodeBlanks Logo Icon CodeBlanks

Quiz oynatma

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

main.dart
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

main.dart
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

Soru
void play() {
  for (var i = 0; i < ____.length; i++) {
    print('${i + 1}. ${questions[i].text}');
  }
}
Cevap
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?

main.dart
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.

Orta seviye bölümündeki tüm dersler