Menu
Coddy logo textTech

Mantıksal Operatörler Bölüm 3

Coddy'nin C# Journey'sinin Temeller bölümünün bir parçası — ders 24 / 69.

Birden fazla koşulu kontrol ederken, bilgisayar nihai cevabı bildiği anda kontrol etmeyi durdurur (Buna kısa devre değerlendirmesi denir).

Örneğin:

int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2;

Burada x, 0'a eşittir, bu nedenle y / x > 2 ifadesini değerlendirmeyecektir. Eğer sırayı tersine çevirirsek:

bool result = y / x > 2 && x != 0;

Bu bir hatayla sonuçlanacaktır çünkü y 0'a bölünecektir, bu da matematikte geçersizdir.

Bu teknik, mantıksal ifadelerin değerlendirilmesini optimize etmek için kullanılır. Örneğin:

int a = 0;
int b = 2;
int c = 3;
int d = 5;
bool result = (a > 0 && b < 2) || (c < -5 && d < 10);

Bu örnekte b < 2 ve d < 10 değerlendirilmeyecektir çünkü a > 0 ve c < -5 ifadelerinin her ikisi de false'tur.

challenge icon

Görev

Başlangıç

Güneş paneli enerji üretimi için iyi bir gün olup olmadığına karar veren bir program oluşturalım

Şu değişkenleri başlatın:

  • isSunny değişkenini true değeri ile
  • windSpeed değişkenini 5.4 değeri ile
  • temperature değişkenini 23 değeri ile
  • solarPanelOutput değişkenini 9 değeri ile
  • isCloudy değişkenini false değeri ile

Tüm bu koşulları kontrol eden tek bir mantıksal ifade oluşturun:

  • Hava güneşli
  • Rüzgar hızı 10'dan küçük
  • Güneş paneli çıktısı 15'ten küçük
  • Sıcaklık 20'nin üzerinde VEYA bulut yok

Kopya kağıdı

Kısa devre değerlendirmesi, bilgisayarın nihai cevabı bildiği anda koşulları kontrol etmeyi durdurması anlamına gelir.

&& (VE) ile, eğer ilk koşul yanlışsa, ikincisi değerlendirilmez:

int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2; // y / x > 2 değerlendirilmez

|| (VEYA) ile, eğer ilk koşul doğruysa, ikincisi değerlendirilmez:

bool result = (a > 0 && b < 2) || (c < -5 && d < 10);
// Eğer a > 0 yanlışsa, b < 2 değerlendirilmez
// Eğer ilk kısım yanlışsa ancak c < -5 de yanlışsa, d < 10 değerlendirilmez

Bu optimizasyon gereksiz hesaplamaları önler ve sıfıra bölme gibi hatalardan kaçınabilir.

Kendin dene

using System;

public class Program {
    public static void Main(string[] args) {
        // Değişkenleri başlat
        
        
        // Tam mantıksal ifade
        bool result = 
        
        // Aşağıdaki satırları silmeyin
        Console.WriteLine("Checking conditions for solar energy production...");
        Console.WriteLine("1. Is it sunny? " + isSunny);
        Console.WriteLine("2. Is wind speed safe? " + (windSpeed < 10));
        Console.WriteLine("3. Can panels produce more? " + (solarPanelOutput < 15));
        Console.WriteLine("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
        Console.WriteLine("\nFinal result - Good day for solar energy production: " + result);
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler