CodeBlanks Logo Icon CodeBlanks

Range-based for

Range-based for ile koleksiyonların üzerinde gezinmeyi öğrenirsin.

Range-based for

Bir vektörün veya dizinin tüm elemanlarını sırayla gezmek için range-based for döngüsü kullanılır. Yazımı for (int x : nums) { ... } biçimindedir; her yinelemede x, koleksiyonun bir sonraki elemanını alır.

Bu yapıda başlangıç, koşul ve artış yazmazsın; C++ bunları otomatik yönetir. Okunabilirliği artırdığı için dizin gerekmediği durumlarda klasik for'a tercih edilir. Döngü değişkenini const int& yaparak gereksiz kopya da önlenir.

Range-based for avantajı

Range-based for'un en büyük avantajı dizin hatalarını ortadan kaldırmasıdır. nums[i] yazarken i'yi yanlış aralıkta verebilirsin; range-based for'da ise her eleman otomatik gelir.

Bu yapı yalnızca koleksiyonu baştan sona gezmek istediğinde uygundur. İndise ihtiyaç duyduğun, atlamalar yaptığın veya koleksiyonu değiştirdiğin durumlarda klasik for daha uygun olur. Her aracı doğru yerde kullanmak, kodun sağlamlığını artırır.

Uygulama Vektör elemanlarını yazdır

nums vektörüne {1, 2, 3} değeri verilmiş. for (int x : nums) ile her elemanı std::cout << x; ile tek satırda yazdır. Çıktı 123 olmalı.

Başlangıç kodu

main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {1, 2, 3};
    // range-based for ile yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <vector>

int main() {
    std::vector<int> nums = {1, 2, 3};
    for (int x : nums) {
        std::cout << x;
    }
    std::cout << std::endl;
    return 0;
}

Beklenen çıktı

123

Soru ve cevaplar

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

1 Hangisi range-based for yazımıdır?

main.cpp
// koleksiyonlu döngü
  • for (i = 0; i < n; i++)
  • for (int x : nums) Doğru cevap
  • for (x in nums)
  • for (int x; nums)

Açıklama: for (int x : nums) range-based for yazımıdır.

2 Range-based for gövdesini yaz

Soru
std::vector<int> nums = {1, 2, 3};
for (int x : nums) {
    std::cout << ____;
}
Cevap
std::vector<int> nums = {1, 2, 3};
for (int x : nums) {
    std::cout << x;
}

Açıklama: x döngü değişkenidir ve her yinelemede elemanı tutar.

3 Range-based for parçalarını eşle

Kavram Anlamı
int x Döngü değişkeni
nums Koleksiyon
: İçinde anlamı
{ ... } Gövde

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