Alıştırma - Yineleme döngüleri için oluşturma ve yapılandırma
- 14 dakika
Yüzeyde, for deyimi, bir kod bloğunda tekrarlama yapmanızı ve böylece kodunuzun yürütme akışını değiştirmenizi sağlayan başka bir tekrarlama ifadesidir. Ancak her birinin nasıl çalıştığını incelediğimizde, her yineleme deyiminin nüanslarını ve bunların ne zaman kullanılacağını daha iyi belirleyebiliriz.
for ifadesi nedir?
deyimi for , belirli bir sayıda kod bloğunda yinelenir. Bu denetim düzeyi, deyimini for diğer yineleme deyimleri arasında benzersiz hale getirir. deyimi, foreach dizi veya koleksiyon gibi bir veri dizisindeki her öğe için bir kod bloğunda bir kez yinelenir. deyimi while , bir koşul karşılanıncaya kadar bir kod bloğunda yinelenir.
Ayrıca deyimi, for yineleme koşullarını ortaya çıkartarak yineleme işlemi üzerinde çok daha fazla denetim sahibi olmanıza da neden olur.
Bu alıştırmada, for ifadesini kullanarak yinelemenin başlangıç koşulunu, tamamlanma koşulunu, yineleme düzenini ve daha fazlasını denetlemeyi öğreneceksiniz. Ayrıca, deyimi için for yaygın kullanım örnekleri hakkında bilgi edineceksiniz.
Tamam, şimdi kodlama ortamımızı hazırlayalım ve bir for deyimini uygulayan kod örneklerini incelemeye başlayalım.
Kodlama ortamınızı hazırlama
Bu modül, tanıtım kodu oluşturma ve çalıştırma sürecinde size yol gösteren uygulamalı etkinlikleri içerir. Geliştirme ortamınız olarak Visual Studio Code kullanarak bu etkinlikleri tamamlamanızı öneririz. Bu etkinlikler için Visual Studio Code'un kullanılması, dünya çapındaki profesyoneller tarafından kullanılan bir geliştirici ortamında daha rahat kod yazmanıza ve çalıştırmanıza yardımcı olur.
Visual Studio Code'yu açın.
Visual Studio Code'u açmak için Windows Başlat menüsü (veya başka bir işletim sistemi için eşdeğer kaynak) kullanabilirsiniz.
Visual Studio Code Dosyası menüsünde Klasör Aç'ı seçin.
Klasör Aç iletişim kutusunda Windows Masaüstü klasörüne gidin.
Kod projelerini tuttuğunuz farklı bir klasör konumunuz varsa, bunun yerine bu klasör konumunu kullanabilirsiniz. Bu eğitim için önemli olan, kolayca bulunabilecek ve anımsanabilecek bir konuma sahip olmaktır.
Klasör Aç iletişim kutusunda Klasör Seç'i seçin.
Yazarlara güvenip güvenmeyişinizi soran bir güvenlik iletişim kutusu görürseniz Evet'i seçin.
Visual Studio Code Terminal menüsünde Yeni Terminal'i seçin.
Terminal panelindeki bir komut isteminin geçerli klasörün klasör yolunu görüntülediğine dikkat edin. Örneğin:
C:\Users\someuser\Desktop>Uyarı
Korumalı alan veya barındırılan bir ortam yerine kendi bilgisayarınızda çalışıyorsanız ve bu C# serisindeki diğer Microsoft Learn modüllerini tamamladıysanız, kod örnekleri için zaten bir proje klasörü oluşturmuş olabilirsiniz. Bu durumda, TestProject klasöründe bir konsol uygulaması oluşturmak için kullanılan sonraki adımı atlayabilirsiniz.
Terminal komut isteminde, belirtilen klasörde yeni bir konsol uygulaması oluşturmak için aşağıdaki istemi girin:
dotnet new console -o ./CsharpProjects/TestProjectBu .NET CLI komutu, belirtilen klasör konumunda yeni bir C# konsol uygulaması projesi oluşturmak için bir .NET program şablonu kullanır. Komut sizin için CsharpProjects ve TestProject klasörlerini oluşturur ve dosyanızın
.csprojadı olarak TestProject kullanır.Dosyaların zaten var olduğunu belirten bir ileti görüntülenirse, sonraki adımlarla devam edin. Mevcut proje dosyalarını yeniden kullanacaksınız.
EXPLORER görünümünde CsharpProjects klasörünü genişletin.
TestProject klasörünü ve iki dosyayı, Program.cs adlı bir C# program dosyasını ve TestProject.csproj adlı bir C# proje dosyasını görmeniz gerekir.
Visual Studio Code Dosyası menüsünde Klasör Aç'ı seçin.
Klasör Aç iletişim kutusunda CsharpProjects klasörünü ve ardından Klasör Seç'i seçin.
EXPLORER görünümünde TestProject klasörünü genişletin ve Program.cs'ı seçin.
Mevcut kod satırlarını silin.
Bu modül sırasında kod örnekleri oluşturmak, derlemek ve çalıştırmak için bu C# konsol projesini kullanacaksınız.
Terminal panelini kapatın.
Temel for deyimi yazma
Visual Studio Code'un açık olduğundan ve Düzenleyici panelinde Program.cs görüntülendiğinden emin olun.
Uyarı
Program.cs boş olmalıdır. Eğer değilse, tüm kod satırlarını seçip silin.
Visual Studio Code Düzenleyicisi'ne aşağıdaki kodu yazın.
for (int i = 0; i < 10; i++) { Console.WriteLine(i); }Bu kod, kod bloğunu 10 kez döngüye sokarak
for'in geçerli değerini yazdıran basit birideyim sunar.Visual Studio Code Dosyası menüsünde Kaydet'i seçin.
kodu oluşturmadan veya çalıştırmadan önce Program.cs dosyasının kaydedilmesi gerekir.
EXPLORER panelinde, TestProject klasör konumunuzdaki bir Terminali açmak için TestProjesi'ne sağ tıklayın ve Tümleşik Terminalde Aç'ı seçin.
Bir Terminal paneli açılır. Terminal, Terminal'in TestProject klasör konumunuza açık olduğunu gösteren bir komut istemi içermelidir.
Terminal komut isteminde kodunuzu çalıştırmak için dotnet run yazın ve Enter tuşuna basın.
Uyarı
"Çalıştırılacak proje bulunamadı" iletisini görürseniz Terminal komut isteminin beklenen TestProject klasörü konumunu gösterdiğinden emin olun. Örneğin:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Şu çıktıyı görmelisiniz.
0 1 2 3 4 5 6 7 8 9Deyimin altı bölümünü
fortanımlamak için bir dakika bekleyin.deyimi
foraşağıdaki altı bölümü içerir:-
foranahtar sözcüğü. - Yineleme koşullarını
fortanımlayan bir parantez kümesi. Parantezler, deyimin sonu işleciyle ayrılmış üç ayrı parça (noktalı virgül) içerir. - İlk bölüm yineleyici değişkenini tanımlar ve başlatır. Bu örnekte:
int i = 0. Bu bölüm başlatıcı olarak adlandırılır. - İkinci bölüm tamamlanma koşulunu tanımlar. Bu örnekte:
i < 10. Başka bir deyişle,fori'den küçük olduğu sürece, çalışma zamanı10deyiminin altındaki kod bloğundaki kod üzerinde yinelemeye devam eder.i10'e eşit olduğunda, çalışma zamanıfordeyiminin kod bloğunu yürütmeyi durdurur. Belgeler, koşul olarak bu bölüme başvurur. - Üçüncü bölüm, her yinelemeden sonra gerçekleştirecek eylemi tanımlar. Bu durumda, her yinelemeden sonra
i++ideğerini 1 artırır. Belgeler bu bölüme yineleyici olarak başvurur. - Son olarak kod bloğu. Kod bloğu, her yineleme için yürütülecek kodu içerir. değerine
ikod bloğunun içinde başvurulduğunu fark edin. Belgeler bu bölümü gövde olarak adlandırır.
Değişkenleri adlandırma kurallarımız göz önünde bulundurulduğunda, geçerli yinelemeyi barındıran değişken için geçerli bir ad olup olmadığını
imerak edebilirsiniz. Bu durumda,içoğu tarafından geçerli olarak kabul edilir. Diğer popüler seçeneklerxvecounter'dir. Bu adj,forkullanan dış birideyiminiz olduğunda ve iç birfordeyim için yineleme değişkeni oluşturmanız gerektiğinde de kullanılır.Uyarı
Üç bölümün de (başlatıcı, koşul ve yineleyici) tümü isteğe bağlıdır. Ancak pratikte genellikle üç bölümün tümü kullanılır.
-
Yineleme koşullarını değiştirme
Başlangıçta belirttiğimiz gibi, for deyimi yineleme deyimleri arasında iki benzersiz özelliğe sahiptir.
-
fordeyimi, bir kod bloğunda kaç kez döngü yapmanız gerektiğini önceden bildiğinizde kullanılmalıdır. - deyimi
for, her yinelemenin nasıl işleneceğini denetlemenize olanak tanır.
Bir kod bloğunu yinelememiz gerekiyorsa ama yukarı saymak yerine geri saymak istersek ne olur?
Kodunuzu aşağıdaki gibi güncelleştirmek için Visual Studio Code Düzenleyicisi'ni kullanın:
for (int i = 10; i >= 0; i--) { Console.WriteLine(i); }Güncelleştirilmiş kodunuzu gözden geçirmek için bir dakikanızı alır.
Deyimin üç bölümünü
fordeğiştirerek davranışını değiştiririz.- Yineleme değişkenini 10 olarak başlatıyoruz.
-
forideğerinden küçük olduğunda0deyiminden çıkmak için tamamlama koşulunu değiştiririz. - Yinelemeyi tamamladığımız her turda, yineleyicinin desenini
1'deniçıkaracak şekilde değiştiririz.
Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Kodunuzu çalıştırmak için Terminal komut isteminden girin
dotnet run.Çıktının değiştiğini fark ettiniz mi?
Kodu çalıştırdığınızda aşağıdaki çıkışı görürsünüz.
10 9 8 7 6 5 4 3 2 1 0
Yineleyicinin deseniyle denemeler yapın
Yineleyici değişkenindeki belirli değerleri atlamak istersek ne olur?
Kodunuzu aşağıdaki gibi güncelleştirmek için Visual Studio Code Düzenleyicisi'ni kullanın:
for (int i = 0; i < 10; i += 3) { Console.WriteLine(i); }Güncelleştirilmiş kodunuzu gözden geçirmek için bir dakikanızı alır.
ile yineleyici değişkeninin
1değerini artırmak veya azaltmak yerine, her yinelemeden sonra iki değeri atlamak için kullanırızi += 3.Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Kodunuzu çalıştırmak için Terminal komut isteminden girin
dotnet run.Çıkışın nasıl değiştiğine dikkat edin.
Kodu çalıştırdığınızda aşağıdaki çıkışı görürsünüz.
0 3 6 9Kuşkusuz, bu tür şeyleri sık sık yapmayacaksınız, ancak umarım ihtiyaç duyduğunuzda yinelemeler üzerinde ayrıntılı bir denetime sahip olduğunuzu takdir edebilirsiniz.
Yineleme deyimini kesmek için break anahtar sözcüğünü kullanın
Bir koşula göre yineleme deyiminden erken çıkmamız gerekirse ne olur? Anahtar sözcüğünü break kullanabiliriz.
Kodunuzu aşağıdaki gibi güncelleştirmek için Visual Studio Code Düzenleyicisi'ni kullanın:
for (int i = 0; i < 10; i++) { Console.WriteLine(i); if (i == 7) break; }Güncellenmiş kodunuzda
breakanahtar sözcüğün kullanımını gözden geçirmek için bir dakikanızı ayırın.Anahtar sözcüğünü
breakilk olarak "C# dilinde switch-case yapısını kullanarak kod akışını dallandırın" modülünde gördük. Sonuç olarak, yineleme deyimlerinden çıkmak için anahtar sözcüğünübreakde kullanabiliriz.Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Kodunuzu çalıştırmak için Terminal komut isteminden girin
dotnet run.Çıkışın nasıl değiştiğine dikkat edin.
Kodu çalıştırdığınızda aşağıdaki çıkışı görürsünüz.
0 1 2 3 4 5 6 7
Bir dizinin her öğesinde döngü oluşturma
Bir for ifadesinin yaygın kullanım şekillerinden biri, özellikle yinelemenin gerçekleşme şekli üzerinde bazı kontrol ihtiyacınız varsa, bir dizi öğeyi yinelemektir.
foreach dizisinin her bir öğesi üzerinde yinelenirken, for deyimi daha fazla özelleştirme sağlamak için ayarlanabilir.
Kodunuzu aşağıdaki gibi güncelleştirmek için Visual Studio Code Düzenleyicisi'ni kullanın:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = names.Length - 1; i >= 0; i--) { Console.WriteLine(names[i]); }Güncelleştirilmiş kodunuzu gözden geçirmek için bir dakikanızı alır.
İlk olarak, dört ad içeren adlı
namesbir dize dizisi örneği oluşturduğumuza dikkat edin.Ardından, dizideki öğe sayısını almak için özelliğini kullandığımıza
Array.Lengthve yineleyici değişkenimizi (int i = names.Length - 1) başlatmak için bu değeri kullandığımıza dikkat edin. Dizi öğelerinin dizin sayısı sıfır tabanlı olduğundan değerden 1 çıkarıyoruz (dört öğeye ait dizin numaraları 0-3'tür).Son olarak, dizide geriye doğru yinelemeyi seçtiğimize dikkat edin—bu,
foreachdeyimiyle yapamadığımız bir şeydir. Dizi öğelerinin (names[i]) dizin sayısını belirtmek için kod bloğunun içindeki yineleme değişkeninin değerini kullanırız.Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Kodunuzu çalıştırmak için Terminal komut isteminden girin
dotnet run.Dizi öğelerinin ters sırada listelendiğine dikkat edin (istediğimiz gibi).
Kodu çalıştırdığınızda aşağıdaki çıkışı görürsünüz.
Michael David Eddie AlexUyarı
Biz
fordeyimini şu şekilde oluşturarak dizi elemanları üzerinde ileriye doğru yineleme işlemi gerçekleştirebilirdik:for (int i = 0; i < names.Length; i++).
foreach deyiminin sınırlamasını inceleyin
Yineleme sırasında foreach dizideki bir değeri güncelleştirmek istiyorsanız ne olur?
Kodunuzu aşağıdaki gibi güncelleştirmek için Visual Studio Code Düzenleyicisi'ni kullanın:
string[] names = { "Alex", "Eddie", "David", "Michael" }; foreach (var name in names) { // Can't do this: if (name == "David") name = "Sammy"; }Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Kodunuzu çalıştırmak için Terminal komut isteminden girin
dotnet run.Görüntülenen hata iletisine dikkat edin.
Bu kodu derlemeye ve çalıştırmaya çalışırsanız bir özel durum görürsünüz.
Cannot assign to name because it is a 'foreach iteration variable'Başka bir deyişle,
namedeğerini yeniden atayamazsınız çünkü bu değerforeachyinelemesinin iç uygulamasının bir parçasıdır.
for deyimini kullanarak foreach deyiminin sınırlamalarını aşmak
Yineleme kodu bloğunun içindeki bir for dizinin içeriğini değiştirmek için bir deyim kullanmayı deneyelim.
Kodunuzu aşağıdaki gibi güncelleştirmek için Visual Studio Code Düzenleyicisi'ni kullanın:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = 0; i < names.Length; i++) if (names[i] == "David") names[i] = "Sammy"; foreach (var name in names) Console.WriteLine(name);Güncelleştirilmiş kodunuzu gözden geçirmek için bir dakikanızı alır.
Yalnızca tek bir kod satırı içeren kod bloklarından küme ayraçlarını kaldırdığımıza dikkat edin. Bu düzeltme, "C# dilinde kod bloklarını kullanarak değişken kapsamını ve mantığını denetleme" modülünde bahsettiğimiz tekniğin aynısını kullanır. Birçok geliştirici bu stili okumakta zorlanırken, diğerleri bu kısaltılmış stili tercih ediyor çünkü daha kısa ve daha açık bir şekilde yazmalarına yardımcı oluyor. Bu kodun okunmasını zor bulursanız veya sadece bu stili tercih etmiyorsanız, endişelenmeyin, kod bloklarınızda küme ayraçlarını her zaman kullanabilirsiniz. İstersen, Düzenleyici panelindeki kodu aşağıdaki kodla güncelleştirin:
string[] names = { "Alex", "Eddie", "David", "Michael" }; for (int i = 0; i < names.Length; i++) { if (names[i] == "David") { names[i] = "Sammy"; } } foreach (var name in names) { Console.WriteLine(name); }Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Kodunuzu çalıştırmak için Terminal komut isteminden girin
dotnet run.Kodun hatasız çalıştığına ve istenen çıkışı oluşturduğuna dikkat edin.
Kodu çalıştırdığınızda aşağıdaki çıkışı görürsünüz.
Alex Eddie Sammy MichaelDizi yineleme deyiminin uygulamasının doğrudan bir parçası olmadığından, dizinin içindeki değerleri değiştirebilirsiniz.
Özet
Bu ünitedeki bazı önemli noktalar şunlardır:
-
forYineleme deyimi, belirli bir kod bloğunda belirli bir sayıda yineleme yapmanızı sağlar. -
forYineleme deyimi, parantez içindeki üç koşulu değiştirerek yineleme mekaniğinin her yönünü denetlemenize olanak tanır: başlatıcı, koşul ve yineleyici. - Dizideki her öğede nasıl yinelemek istediğinizi kontrol etmeniz gerektiğinde
forifadesi sıkça kullanılır. - Kod bloğunuzda yalnızca bir kod satırı varsa, dilerseniz küme ayraçlarını ve boşluğu ortadan kaldırabilirsiniz.