Dart
Skor hesaplama
Skor hesaplama metoduyla doğru sayısını öğrenirsin.
Skor takibi
Quiz'i değerlendirmek için grade metodunu yazacağız. Bu metot, verilen cevap listesini soruların cevaplarıyla karşılaştırır ve doğru sayısını score alanına yazar. Sonra skoru ekrana yazdırır.
Quiz sınıfına int score = 0; özelliği eklenir. grade(List<String> answers) metodu her cevabı questions[i].answer ile kıyaslar; eşitse score++ ile artırır.
Bu yapı, cevapları otomatik değerlendirmenin temelidir. Gerçek uygulamalarda kullanıcıdan cevap alınır; burada sabit bir listeyle simüle ediyoruz.
Sonuç gösterme
grade metodu döngüden sonra print('Skor: $score') ile sonuçu yazdırır. İki sorudan biri doğruysa çıktı Skor: 1 olur.
$score string interpolation'dur; score değişkeninin değerini metne gömer. Dart'ta $değişken yazımı değişken değerini verir.
Bu metot çağrıldığında quiz değerlendirilmiş olur. Bir sonraki derste tüm parçaları birleştirip çalışan bir uygulama elde edeceğiz.
Uygulama grade metodunu ve score alanını ekle
Quiz sınıfına int score = 0 özelliği ekle. Sonra void grade(List<String> answers) metodunu yaz: score = 0 ile başlat, for döngüsü ile her cevabı questions[i].answer ile karşılaştır, eşitse score++. Döngüden sonra print('Skor: $score') yaz. main zaten quiz.grade(['Ankara', 'Yanlış']) çağırıyor.
Örnek çözümü göster
class Question {
String text;
String answer;
Question(this.text, this.answer);
}
class Quiz {
List<Question> questions = [];
int score = 0;
void addQuestion(Question q) {
questions.add(q);
}
void play() {
for (var i = 0; i < questions.length; i++) {
print('${i + 1}. ${questions[i].text}');
}
}
void grade(List<String> answers) {
score = 0;
for (var i = 0; i < questions.length; i++) {
if (answers[i] == questions[i].answer) {
score++;
}
}
print('Skor: $score');
}
}
void main() {
var quiz = Quiz();
quiz.addQuestion(Question('Başkent nerede?', 'Ankara'));
quiz.addQuestion(Question('Kaç gün bir hafta?', '7'));
quiz.grade(['Ankara', 'Yanlış']);
}
Kendini test et
-
Skor parçalarını eşleştir
- int score = 0
- Skor alanı
- grade(List<String> answers)
- Değerlendirme metodu
- answers[i] == questions[i].answer
- Karşılaştırma
- score++
- Doğru sayısı artış
-
answers[i] == questions[i].answer ne zaman doğrudur?
if (answers[i] == questions[i].answer) {
score++;
}
- Cevap boşsa
- Cevap yanlışsa
- Verilen cevap doğru cevapla eşleşirse
- Soru sayısı kadar
Cevabı göster
Verilen cevap doğru cevapla eşleşirse — verilen cevap doğru cevapla aynıysa koşul sağlanır.
-
Skor artışı
void grade(List<String> answers) {
score = 0;
for (var i = 0; i < questions.length; i++) {
if (answers[i] == questions[i].answer) {
____;
}
}
print('Skor: $score');
}
Cevabı göster
void grade(List<String> answers) {
score = 0;
for (var i = 0; i < questions.length; i++) {
if (answers[i] == questions[i].answer) {
score++;
}
}
print('Skor: $score');
}
Sıradaki ders: Birleştirme