Java
Birleştirme
Menü döngüsüyle CLI uygulaması yazarsın.
Birleştirme: komut döngüsü
Son adımda tüm parçaları birleştirip bir komut döngüsü kuracağız. Komutlar bir String[] olarak gelir; her biri ya add:X ya list ya da done:N biçimindedir.
for (String cmd : commands) {
if (cmd.startsWith("add:")) {
list.addTask(cmd.substring(4));
} else if (cmd.equals("list")) {
list.listTasks();
} else if (cmd.startsWith("done:")) {
int idx = Integer.parseInt(cmd.substring(5));
list.completeTask(idx);
}
}
substring(4) ile başlığı, Integer.parseInt ile indeksi çıkarırız. Bu yapı, gerçek bir menü döngüsünün iskeletidir; kullanıcıdan girdi almayı ileride göreceğiz.
Projeyi bütünleştirme
Bu derste tüm metotları (Task, TodoList, addTask, listTasks, completeTask) bir araya getirdik. Komut döngüsü, kullanıcı girdisini taklit eden bir dizi üzerinde çalışır.
Gerçek bir CLI uygulamasında komutlar String[] args ya da Scanner ile okunur. Scanner'ı bir sonraki grupta göreceksin; o zaman bu iskeleti canlı kullanıcı girdisine bağlayabilirsin.
Şimdi senden bu döngüyü yazmanı istiyoruz: komutları sırayla işle, her birini ilgili metoda yönlendir.
Uygulama Komut döngüsünü yaz
main içindeki commands dizisini for-each ile gez. Her komut için: add:X ise list.addTask(cmd.substring(4)), list ise list.listTasks(), done:N ise list.completeTask(Integer.parseInt(cmd.substring(5))) çağır.
Örnek çözümü göster
for (String cmd : commands) {
if (cmd.startsWith("add:")) {
list.addTask(cmd.substring(4));
} else if (cmd.equals("list")) {
list.listTasks();
} else if (cmd.startsWith("done:")) {
int idx = Integer.parseInt(cmd.substring(5));
list.completeTask(idx);
}
}
Kendini test et
-
Boşluğu doldur: komut türünü bul
if (cmd.____("add:")) {
list.addTask(cmd.substring(4));
}
Cevabı göster
if (cmd.startsWith("add:")) {
list.addTask(cmd.substring(4));
}
-
Integer.parseInt(cmd.substring(5)) ne yapar?
- Bir hata fırlatır
- "done:" önekini kaldırır
- cmd'i 5'e böler
- "done:0"'dan 0 sayısını çıkarır
Cevabı göster
"done:0"'dan 0 sayısını çıkarır — substring(5) "0" verir, parseInt onu int'e çevirir.
-
Komut ve eylemi eşleştir
- add:Alışveriş
- Yeni görev ekle
- list
- Görevleri yazdır
- done:0
- İlk görevi tamamla
- done:1
- İkinci görevi tamamla
Sıradaki ders: StringBuilder