CodeBlanks Logo Icon CodeBlanks

Görev listeleme

listTasks ile görevleri yazdırırsın.

Görev listeleme: listTasks

Şimdi TodoList'e görevleri okunabilir biçimde yazdıran bir metot ekleyeceğiz: listTasks. Bu metot, listedeki her görevi ayrı satırda basar.

void listTasks() {
  for (Task t : tasks) {
    System.out.println(t);
  }
}

For-each döngüsü, listedeki her Task'ı sırayla t değişkenine koyar. println(t) de toString metodunu çağırıp [ ] Alışveriş gibi okunabilir bir satır basar.

Boş liste durumu

listTasks metodu, liste boşsa hiçbir şey yazdırmaz; for-each döngüsü sıfır kez döner. Bu sessiz davranış çoğu zaman istediğimizdir.

TodoList empty = new TodoList();
empty.listTasks();
// (çağrı bir şey yazdırmadan biter)

İstersen metot başında if (tasks.isEmpty()) ile bir bildirim yazdırabilirsin. Şimdilik sade tutuyoruz; ileride bu davranışı özelleştirebilirsin.

Uygulama listTasks metodunu yaz

TodoList sınıfı içine void listTasks() metodunu tanımla; gövde, for (Task t : tasks) döngüsü ile her görevi System.out.println(t) ile yazdırsın. main içinde iki görev ekle ve list.listTasks() çağır.

Başlangıç kodu

Main.java
import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    TodoList list = new TodoList();
    list.addTask("Alışveriş");
    list.addTask("Ödev");
    // Görevleri listele
  }
}

class Task {
  String title;
  boolean done;
  Task(String title) {
    this.title = title;
    this.done = false;
  }
  public String toString() {
    return (done ? "[x] " : "[ ] ") + title;
  }
}

class TodoList {
  ArrayList<Task> tasks = new ArrayList<>();
  void addTask(String title) {
    tasks.add(new Task(title));
  }
  // listTasks metodunu tanımla: her görevi ayrı satırda yazdır
}

Örnek çözüm

Main.java
// TodoList içinde:
void listTasks() {
  for (Task t : tasks) {
    System.out.println(t);
  }
}
// main içinde:
list.listTasks();

Beklenen çıktı

[ ] Alışveriş
[ ] Ödev

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Parça ve işlevi eşleştir

Kavram Anlamı
for (Task t : tasks) Listeyi gezer
println(t) Görevi yazdırır
toString Görevi metne çevirir
tasks Tüm görevlerin listesi

2 listTasks metodu liste boşsa ne yapar?

  • Hiçbir şey yazdırmaz
  • Null yazar Doğru cevap
  • Hata fırlatır
  • Boş bir satır basar

Açıklama: For-each boş listede sıfır kez döner.

3 Boşluğu doldur: listTasks döngüsü

Soru
void listTasks() {
  for (Task t : ____) {
    System.out.println(t);
  }
}
Cevap
void listTasks() {
  for (Task t : tasks) {
    System.out.println(t);
  }
}

Açıklama: for (Task t : tasks) ile liste gezilir.

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