Java
Skor hesaplama
score ile doğru sayısını ve yüzdesini hesaplarsın.
Skor hesaplama
Dördüncü ders skor hesaplayan bir metot ekler. check metodu, verilen cevabı sorunun cevabıyla karşılaştırır. score alanı doğru sayısını tutar. Bu, quiz'in temel işlevidir.
Örnek: int score = 0; int check(String[] answers) { for (int i = 0; i < count; i++) { if (answers[i].equals(questions[i].answer)) score++; } return score; }. Bu metot, her sorunun cevabını verilen cevaplarla karşılaştırır. Doğru eşleşme varsa score artar. equals metodu dizge karşılaştırması için kullanılır; == referans karşılaştırır ve yanlış sonuç verebilir. Metot, toplam doğru sayısını döndürür.
equals vs ==
Java'da dizgeler equals ile karşılaştırılır. == operatörü içeriği değil, referansları karşılaştırır. İki dizge aynı içeriğe sahip olsa bile == yanlış dönebilir.
Örnek: new String("evet").equals(new String("evet")) true döner; çünkü içerik aynı. Ama new String("evet") == new String("evet") false döner; çünkü iki ayrı nesne farklı referanslara sahiptir. Bu yüzden dizge karşılaştırmasında her zaman equals kullanılır. Quiz skor hesaplamasında answers[i].equals(questions[i].answer) doğru yöntemdir. == kullanırsan skor her zaman sıfır kalabilir.
Uygulama Quiz'e check metodu ekle
Quiz sınıfına int score = 0 alanını ekle. int check(String[] answers) metodu ekle; gövdesinde for döngüsü ile i sıfırdan count'a kadar dönsün. Her adımda if (answers[i].equals(questions[i].answer)) score++; yaz. Metot score döndürsün. main içinde bir Quiz örneği oluştur, iki soru ekle, String[] answers = {"Ankara", "İzmir"} ile check çağır ve sonucu yazdır.
Örnek çözümü göster
class Question {
String text;
String answer;
Question(String t, String a) {
text = t;
answer = a;
}
public String toString() {
return text + " = " + answer;
}
}
class Quiz {
Question[] questions;
int count;
int score;
Quiz() {
questions = new Question[10];
count = 0;
score = 0;
}
void add(Question q) {
questions[count] = q;
count++;
}
void display() {
for (int i = 0; i < count; i++) {
System.out.println(questions[i]);
}
}
int check(String[] answers) {
for (int i = 0; i < count; i++) {
if (answers[i].equals(questions[i].answer)) score++;
}
return score;
}
public static void main(String[] args) {
Quiz quiz = new Quiz();
quiz.add(new Question("Başkent", "Ankara"));
quiz.add(new Question("Şehir", "İstanbul"));
String[] answers = {"Ankara", "İzmir"};
System.out.println(quiz.check(answers));
}
}
Kendini test et
-
equals ile karşılaştırmayı tamamla
if (answers[i].____(questions[i].answer)) {
score++;
}
Cevabı göster
if (answers[i].equals(questions[i].answer)) {
score++;
}
-
Skor bölümlerini eşle
- int score
- Doğru sayısı
- answers[i].equals(...)
- Karşılaştırma
- score++
- Artış
- return score
- Dönüş
-
İki dizge içeriğini karşılaştırmak için hangi metot kullanılır?
Cevabı göster
equals — Equals — dizge içeriği equals ile karşılaştırılır.
Sıradaki ders: Birleştirme