Alıştırma - İfadeyi değerlendirme
- 11 dakika
Karar mantığı, hangi yolun izlendiğine ilişkin kararın bir ifadenin değerlendirilmesine dayandığı kodunuz aracılığıyla alternatif yollar oluşturmak için kullanılır. Örneğin, bir kullanıcının girişini temel alarak iki yoldan birini yürüten bazı kodlar yazabilirsiniz. Kullanıcı "a" harfini girerse kodunuz bir kod bloğu yürütür. "b" harfini girerlerse kodunuz farklı bir kod bloğu yürütür. Bu örnekte, yürütme yolunu bir dizeye atanan değere göre denetleyebilirsiniz. Kodunuz bir ifadeyi, bu ifadenin nasıl değerlendirildiğini ve yolları tanımlamak için kullanılan temel mantığı temel alan bir yürütme yolu seçer.
İfade oluşturma ve değerlendirmeyi incelemek, başlamak için iyi bir yerdir.
İfade nedir?
İfade, tek bir değer döndüren herhangi bir değer (değişmez veya değişken) işleç ve yöntem birleşimidir. Deyim, C# dilinde eksiksiz bir yönergedir ve deyimler bir veya daha fazla ifadeden oluşur. Örneğin, aşağıdaki ifdeyim tek bir değer döndüren tek bir ifade içerir:
if (myName == "Luiz")
bir ifade tarafından döndürülen değerin bir sayı veya dize olabileceğini düşünüyor olabilirsiniz. Uygulama geliştiricilerinin farklı amaçlar için farklı ifade türleri kullandığı doğrudur. Bu durumda, bir if seçim deyimi geliştirirken veya truedöndüren false bir ifade kullanacaksınız. Geliştiriciler bu tür bir ifadeyi Boole ifadesi olarak adlandırıyor. Kodunuz bir Boole ifadesi içerdiğinde, dönüş değeri her zaman tek true veya false değerdir.
Kodunuz yürütülecek kod bloğuna karar vermek için bu ifadeleri kullanabileceğinden Boole ifadeleri önemlidir.
Boole ifadesi içinde kullanabileceğiniz birçok farklı işleç türü vardır. Örneğin, yukarıdaki deyim, if bir dize değişkeninin belirli bir değere atanıp atanmadığını denetlemek için eşitlik işlecini == kullanır. Seçtiğiniz işleç kullanılabilir kod yollarına, yollarla ilişkili koşullara ve temel alınan uygulama mantığına bağlıdır.
Eşitliği ve eşitsizliği değerlendirme
En yaygın kod değerlendirmelerinden biri, iki değerin eşit olup olmadığını denetlemektir. Eşitlik denetimi yaparken, denetlenen iki değer arasındaki eşitlik işlecini == bulursunuz. Eşitlik işlecinin iki tarafındaki değerler eşdeğerse, ifade döndürür true. Aksi takdirde false değerini döndürür.
Buna karşılık, iki değerin eşit olup olmadığını da denetlemeniz gerekebilir. Eşitsizliği denetlemek için iki değer arasındaki eşitsizlik işlecini != kullanacaksınız.
Neden hem eşitlik hem de eşitsizlik işleçlerine ihtiyacınız olduğunu merak edebilirsiniz. Dallanma deyimleri oluşturma ve gerçek dünya kodu yazmaya başlama hakkında bilgi edindikçe nedeni daha net anlayacaksınız. Karşıt görevler gerçekleştiren iki işleç daha yüksek ifadeli ve kompakt olmanıza olanak sağlar.
Şimdi kodlama ortamınızı hazırlamanın ve Boole ifadelerini değerlendiren kod yazmaya başlamanın zamanı geldi.
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 tavsiye edilir. 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'u 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>Not
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.
Eşitlik işlecini kullanma
Visual Studio Code'un açık olduğundan ve Düzenleyici panelinde Program.cs görüntülendiğinden emin olun.
Not
Program.cs boş olmalıdır. Değilse, tüm kod satırlarını seçin ve silin.
Visual Studio Code Düzenleyicisi'ne aşağıdaki kodu yazın.
Console.WriteLine("a" == "a"); Console.WriteLine("a" == "A"); Console.WriteLine(1 == 2); string myValue = "a"; Console.WriteLine(myValue == "a");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.
Not
"Ç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>Aşağıdaki çıkışı görmelisiniz.
True False False True
Dizenin yerleşik yardımcı yöntemlerini kullanarak dize eşitliği denetimini geliştirme
Satırın Console.WriteLine("a" == "A"); çıkışına falseşaşırabilirsiniz. Dizeler karşılaştırılırken büyük/küçük harf önemlidir.
Ayrıca şu kod satırını da göz önünde bulundurun:
Console.WriteLine("a" == "a ");
Burada dizenin sonuna bir boşluk karakteri eklediniz. Bu ifade de çıkışını falseoluşturur.
Bazı durumlarda, metinden önce veya sonra boşluk karakteri olması son derece kabul edilebilir olabilir. Ancak, tam olarak doğru olmayan bir eşleşmeyi kabul etmeniz gerekiyorsa, önce verilere "masaj" yapabilirsiniz. Verilerin "masaj" yapılması, eşitlik karşılaştırması gerçekleştirmeden önce biraz temizleme gerçekleştirdiğiniz anlamına gelir.
Örneğin, bir döngü içinde kullanıcı girişi toplarken bu durumu göz önünde bulundurun. Her değer girildikten sonra, kullanıcıya devam etmek isteyip istemediğini belirlemesi için bir istem sağlayabilirsiniz, örneğin Do you want to continue (Y/N)?. Kullanıcı devam etmek isterse, büyük olasılıkla veya ygirerY. Kodunuz ile eşdeğer olmasa y bile her iki değeri de eşit olarak yorumlamasını Yistersiniz.
İki dize değerini eşitlik açısından denetlemeden önce, özellikle bir kullanıcı tarafından bir veya her iki değer girildiğinde şunları yapmalısınız:
- Herhangi bir dize değerinde
ToUpper()veyaToLower()yardımcı yöntemini kullanarak her iki dizenin de tamamının büyük harfli ya da küçük harfli olduğundan emin olun. - Herhangi bir dize değerinde yardımcı yöntemini kullanarak baştaki
Trim()veya sondaki boşlukları kaldırın.
Aşağıdaki kod listesinde gösterildiği gibi bu iki yardımcı yöntemi her iki değere zincirleyerek önceki eşitlik denetimini geliştirebilirsiniz:
Visual Studio Code Düzenleyicisi'ndeki kodu aşağıdaki kodla değiştirin:
string value1 = " a"; string value2 = "A "; Console.WriteLine(value1.Trim().ToLower() == value2.Trim().ToLower());Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Kodu bu kez çalıştırdığınızda True çıkışının olduğuna dikkat edin.
Eşitsizlik işlecini kullanma
Önceki adımdaki tüm kodu açıklama satırı yapmak için
//satır açıklaması işlecini kullanın.Visual Studio Code Düzenleyicisi'ne aşağıdaki kodu yazın.
Console.WriteLine("a" != "a"); Console.WriteLine("a" != "A"); Console.WriteLine(1 != 2); string myValue = "a"; Console.WriteLine(myValue != "a");Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu çalıştırın.
Aşağıdaki çıkışı görmelisiniz.
False True True False
Beklediğiniz gibi eşitsizlik işleci kullanılırken elde edilen sonuç, eşitlik işlecini kullanırken gördüklerinin tersidir. Bu, kodunuzun tam olarak istediğiniz gibi ters yönde dallanacağı anlamına gelir.
Karşılaştırmaları değerlendirme
Sayısal veri türleriyle çalışırken, bir değerin başka bir değerden daha büyük veya daha küçük olup olmadığını belirlemek isteyebilirsiniz. Bu tür karşılaştırmaları gerçekleştirmek için aşağıdaki işleçleri kullanın:
- Büyüktür
> - Küçüktür
< - Büyüktür veya eşittir
>= - Küçüktür veya eşittir
<=
Doğal olarak, == yukarıdaki dize değerlerini karşılaştırmak için kullandığınız ve != işleçleri de sayısal veri türlerini karşılaştırırken çalışır.
Karşılaştırma işleçlerini kullanma
Önceki görevdeki kodun tümünü açıklama satırı yapmak için satır açıklama işlecini
//kullanın.Visual Studio Code Düzenleyicisi'ne aşağıdaki kodu yazın.
Console.WriteLine(1 > 2); Console.WriteLine(1 < 2); Console.WriteLine(1 >= 1); Console.WriteLine(1 <= 1);Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu derleyin ve çalıştırın.
Aşağıdaki çıkışı görmeniz gerekir:
False True True True
Boole değeri döndüren yöntemler
Bazı yöntemler Boole değeri (true veya false) döndürür. Aşağıdaki alıştırmada, daha büyük bir dizenin String uygulamanız için önemli olan belirli bir sözcük veya tümcecik içerip içermediğini belirlemek için sınıfının yerleşik bir yöntemini kullanacaksınız.
Not
Bazı veri türlerinin, faydalı yardımcı program görevleri gerçekleştiren yöntemleri vardır. Veri String türü bunların birçoğuna sahiptir. Birçoğu, Contains(), StartsWith() ve EndsWith() içeren bir Boole değeri döndürür. "C# dilinde Dize sınıfı yöntemlerini kullanarak alfasayısal verileri işleme" adlı Microsoft Learn modülünde bunlar hakkında daha fazla bilgi edinebilirsiniz.
Boole döndüren bir yöntem kullanma
Önceki adımdaki tüm kodu açıklama satırı yapmak için
//satır açıklaması işlecini kullanın.Visual Studio Code Düzenleyicisi'ne aşağıdaki kodu yazın.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(pangram.Contains("fox")); Console.WriteLine(pangram.Contains("cow"));Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu derleyin ve çalıştırın.
Aşağıdaki çıkışı görmelisiniz.
True False
Mantıksal olumsuzlama nedir?
"Mantıksal Olumsuzlama" terimi tekli olumsuzlama işlecini !ifade eder. Bazı kişiler bu işleci "not işleci" olarak adlandırmış. İşleci bir koşullu ifadenin ! (veya veya olarak değerlendirilen truefalseherhangi bir kodun) önüne yerleştirdiğinizde, kodunuzu işlenenin değerlendirmesini tersine çevirmeye zorlar. Mantıksal olumsuzlama uygulandığında, işlenen olarak değerlendirilirse, değerlendirme oluşturur true . İşlenen olarak değerlendirilirse falsefalse, ve true olur.
Bu fikirler arasındaki bağlantıyı görmenize yardımcı olabilecek bir örnek aşağıda verilmiştir. Aşağıdaki iki kod satırı aynı sonucu üretir. İkinci satır daha kompakttır.
// These two lines of code will create the same output
Console.WriteLine(pangram.Contains("fox") == false);
Console.WriteLine(!pangram.Contains("fox"));
Mantıksal Olumsuzlama işlecini kullanma
Önceki adımdaki tüm kodu açıklama satırı yapmak için
//satır açıklaması işlecini kullanın.Visual Studio Code Düzenleyicisi'ne aşağıdaki kodu yazın.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(!pangram.Contains("fox")); Console.WriteLine(!pangram.Contains("cow"));Kod dosyanızı kaydedin ve ardından Visual Studio Code'u kullanarak kodunuzu derleyin ve çalıştırın.
Aşağıdaki çıkışı görmelisiniz.
False True
Eşitsizlik işleci ile mantıksal olumsuzlama karşılaştırması
Eşitsizlik işleci != bir ! karakter içerir, ancak mantıksal olumsuzlama ile karıştırılmamalıdır. Eşitsizlik işleci, işlenenleri eşit değilse döndürür true ve işlenenler eşitse döndürür false . Yerleşik türlerin işlenenleri için ifade, ifadeyle x != y!(x == y) aynı sonucu verir (mantıksal olumsuzlama örneği).
Aşağıdaki kod örneği işlecinin != kullanımını gösterir:
int a = 7;
int b = 6;
Console.WriteLine(a != b); // output: True
string s1 = "Hello";
string s2 = "Hello";
Console.WriteLine(s1 != s2); // output: False
Özet
Burada, şu ana kadar Boolean ifadelerini değerlendirme konusunda öğrendiğiniz temel bilgiler yer almaktadır:
-
trueveyafalseolarak değerlendirilen birçok farklı türde ifade vardır. -
==işlecini kullanarak eşitliği değerlendirin. - Dizelerin eşitliğini değerlendirmek için dizelerin farklı büyük/küçük harf ve baştaki veya sondaki boşluklara sahip olma olasılığını göz önünde bulundurmanız gerekir. Durumunuza bağlı olarak, iki dizenin eşit olma ihtimalini artırmak için
ToLower()veyaToUpper()yardımcı yöntemlerini veTrim()yardımcı yöntemini kullanın. -
!=işlecini kullanarak eşitsizliği değerlendirin. -
>,<,>=ve<=gibi karşılaştırma işleçlerini kullanarak büyüktür, küçüktür ve benzer işlemlerini değerlendirin. - Bir yöntem bir boole döndürürse bu, Boole ifadesi olarak kullanılabilir.
- Belirli bir ifadenin tersini değerlendirmek için
!mantıksal olumsuzlama işlecini kullanın.