CodeBlanks Logo Icon CodeBlanks

Sepeti listeleme

Sepeti formatlı yazdıran metodu yazarsın.

Sepeti listeleme

Sepetteki ürünleri ekrana yazdırmak için printCart metodunu yazacağız. Bu metot names ve prices listelerini dizin ile gezer ve her ürünü tek bir satıra yazar.

Dizin ile gezmek için klasik for döngüsü kullanırız: for (var i = 0; i < names.length; i++). Her yinelemede i 0'dan başlayıp names.length - 1'e kadar gider. names[i] ve prices[i] ile paralel listedeki i. elemanlara erişiriz.

Formatlı çıktı

printCart'ta her ürün tek satırda yazılırken ad ve fiyat boşlukla ayrılır. print("${names[i]} ${prices[i]}"); yazımı interpolation ile iki alanı tek dizeye gömer ve yeni satıra geçer.

Boşluk yerine virgül ya da tire de kullanılabilir; biçimlendirme tercihi senin. Bu projede boşlukla ayıracağız. İki alanı tek satırda yazmak, sepetin hızlıca gözden geçirilmesini sağlar. ${names[i]} süslü parantezli interpolation, ifade (dizin erişimi) gömmek için zorunludur.

Uygulama printCart metodunu yaz

Cart sınıfına bir printCart metodu ekle. İmzası: void printCart(). Gövdede for (var i = 0; i < names.length; i++) ile dizinleri gez ve print("${names[i]} ${prices[i]}"); ile yazdır. main iki ürün ekleyip printCart'ı çağırıyor. Çıktı iki satır olmalı: Defter 25.0 ve Kalem 10.0.

Başlangıç kodu

main.dart
class Cart {
  List<String> names = [];
  List<double> prices = [];

  void addItem(String name, double price) {
    names.add(name);
    prices.add(price);
  }

  double getSubtotal() {
    double sum = 0;
    for (var p in prices) {
      sum += p;
    }
    return sum;
  }
}
  // printCart metodunu buraya yaz
}

void main() {
  var cart = Cart();
  cart.addItem("Defter", 25.0);
  cart.addItem("Kalem", 10.0);
  cart.printCart();
}

Örnek çözüm

main.dart
class Cart {
  List<String> names = [];
  List<double> prices = [];

  void addItem(String name, double price) {
    names.add(name);
    prices.add(price);
  }

  double getSubtotal() {
    double sum = 0;
    for (var p in prices) {
      sum += p;
    }
    return sum;
  }

  void printCart() {
    for (var i = 0; i < names.length; i++) {
      print("${names[i]} ${prices[i]}");
    }
  }
}

void main() {
  var cart = Cart();
  cart.addItem("Defter", 25.0);
  cart.addItem("Kalem", 10.0);
  cart.printCart();
}

Beklenen çıktı

Defter 25.0
Kalem 10.0

Soru ve cevaplar

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

1 printCart metodu ne yapar?

main.dart
cart.printCart();
  • Toplamı hesaplar
  • Sepeti ekrana yazar Doğru cevap
  • Ürün çıkarır
  • Ürün ekler

Açıklama: printCart sepetteki ürünleri ekrana yazdırır.

2 Parçayı işlevine eşle

Kavram Anlamı
names.length Eleman sayısı
names[i] İ. ad
prices[i] İ. fiyat
print(...) Ekrana yazar

3 print satırını yaz

Soru
void printCart() {
  for (var i = 0; i < names.length; i++) {
    print(____);
  }
}
Cevap
void printCart() {
  for (var i = 0; i < names.length; i++) {
    print("${names[i]} ${prices[i]}");
  }
}

Açıklama: İki alan interpolation ile tek dizeye gömülür.

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