CodeBlanks Logo Icon CodeBlanks

Soru gösterme ve cevap alma

JavaScript kursu · Başlangıç · Ders 79/133

for...of ile soruları sırayla gösterir ve kullanıcıdan cevap alırsın.

for...of ile soruları dolaşma

Soru dizisini sırayla dolaşmak için for...of döngüsünü kullanırız. Bu döngü her adımda dizinin bir elemanını verir:

for (const q of questions) { ... }

Burada q her adımda bir soru nesnesidir. Döngü gövdesinde q.question, q.options ve q.answer ile o sorunun verilerine erişiriz. for...of indekslerle uğraşmaz; değeri doğrudan verir.

Cevapları sayıya çevirme

Kullanıcının verdiği cevapları bir userAnswers dizisinde tutacağız. Her cevap, seçeneğin numarasını string olarak saklar: "1", "0" gibi.

Bu string değeri sayıya çevirmek için parseInt kullanırız. Örneğin parseInt(userAnswers[0]), "1" stringini 1 sayısına çevirir. Böylece q.options[userAnswer] gibi indeks erişimi yapabilir ve seçeneğin metnine ulaşabiliriz.

Uygulama Soruları göster ve cevapları al

Üstte tanımladığın questions dizisinin altına bir userAnswers dizisi ekle (her cevap bir string olsun: "1", "0"). Sonra bir answerIndex sayacı ile for...of döngüsü kur: her soruda parseInt(userAnswers[answerIndex]) ile cevabı sayıya çevir, console.log(q.question) ile soru metnini, console.log("Senin cevabın:", q.options[userAnswer]) ile seçilen seçeneği yazdır. Sonunda answerIndex'i bir artır.

Örnek çözümü göster
// Quiz sorularını tanımla
const questions = [
  { question: "Türkiye'nin başkenti?", options: ["İzmir", "Ankara", "Bursa"], answer: 1 },
  { question: "En çok yağış alan il?", options: ["Rize", "Konya", "Ankara"], answer: 0 }
];
// Kullanıcı cevapları (seçenek indeksleri string olarak)
const userAnswers = ["1", "0"];
let answerIndex = 0;
for (const q of questions) {
  const userAnswer = parseInt(userAnswers[answerIndex]);
  console.log(q.question);
  console.log("Senin cevabın:", q.options[userAnswer]);
  answerIndex++;
}

Kendini test et

  1. for (const q of questions) { ... } döngüsünde q her adımda ne olur?

    • Sorunun indeksi (0, 1, 2, ...)
    • Sorunun options dizisi
    • Soru nesnesinin kendisi
    • Doğru cevabın değeri
    Cevabı göster

    Soru nesnesinin kendisi — Doğru! for...of dizinin elemanını verir; burada her eleman bir soru nesnesidir.

  2. parseInt çağrısını tamamla

    const userAnswer = parseInt(____);
    Cevabı göster
    const userAnswer = parseInt(userAnswers[answerIndex]);
  3. İfadeyi anlamına eşleştir

    for (const q of questions)
    Her soruyu sırayla dolaşır
    parseInt(userAnswers[0])
    "1" stringini 1 sayısına çevirir
    q.options[userAnswer]
    Seçilen seçeneğin metni
    q.question
    Soru metni

Başlangıç bölümündeki tüm dersler