CodeBlanks Logo Icon CodeBlanks

İş mantığı

Metotlar ve koşullarla iş kurallarını yazarsın.

borrowBook yöntemi

Ödünç verme mantığı: listedeki ilk müsait kitabı bul ve available alanını false yap. for-each döngüsü ile listeyi tararsın.

void borrowBook() {
  for (Book b : books) {
    if (b.available) {
      b.available = false;
      return;
    }
  }
}

Bulunca return ile döngüden çıkar; böylece yalnızca bir kitap ödünç verilir. Müsait kitap yoksa yöntem hiçbir şey yapmadan biter. Bu davranış bir sonraki derste hata fırlatmaya dönüşecek.

returnBook yöntemi

Ödünç verilen kitabı geri almak için returnBook yazılır: ilk available == false olan kitabı bul ve true yap. Mantık borrowBook'un tersidir.

void returnBook() {
  for (Book b : books) {
    if (!b.available) {
      b.available = true;
      return;
    }
  }
}

! ile değili alınır; böylece ödünçte olan kitap bulunur. Bu dersin code görevinde yalnızca borrowBook'u yazacaksın; returnBook aynı mantığın aynadaki yansımasıdır ve istersen kendin ekleyebilirsin.

Uygulama borrowBook yaz ve çağır

Catalog sınıfına void borrowBook() ekle: for (Book b : books) ile gezer, ilk müsait kitabın available alanını false yap ve return ile çık. main'de cat.borrowBook() çağır ve cat.books yazdır.

Başlangıç kodu

Main.java
import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    Catalog cat = new Catalog();
    cat.addBook("Suç ve Ceza");
    // borrowBook'u çağır, listeyi yazdır
  }
}

class Book {
  String title;
  boolean available;
  Book(String title) {
    this.title = title;
    this.available = true;
  }
  public String toString() {
    return (available ? "[müsait] " : "[ödünç] ") + title;
  }
}

class Catalog {
  ArrayList<Book> books = new ArrayList<>();
  void addBook(String title) {
    books.add(new Book(title));
  }
}

Örnek çözüm

Main.java
// Catalog içinde:
void borrowBook() {
  for (Book b : books) {
    if (b.available) {
      b.available = false;
      return;
    }
  }
}
// main içinde:
cat.borrowBook();
System.out.println(cat.books);

Beklenen çıktı

[[ödünç] Suç ve Ceza]

Soru ve cevaplar

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

1 for-each döngüsünü tamamla

Soru
for (____ b : books) {
  if (b.available) { b.available = false; return; }
}
Cevap
for (Book b : books) {
  if (b.available) { b.available = false; return; }
}

Açıklama: for-each döngüsü Book türünde değişkenle listeyi gezer.

2 borrowBook müsait kitap bulunca ne yapar?

  • available'ı false yapar ve return ile çıkar Doğru cevap
  • Listeyi siler
  • Tüm kitapları ödünç verir
  • Hata fırlatır

Açıklama: available false yapılır ve return ile döngüden çıkılır; yalnızca bir kitap ödünç verilir.

3 Yöntemi davranışıyla eşleştir

Kavram Anlamı
borrowBook available false
returnBook available true
addBook Listeye ekle
toString Dize gösterim

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