Menu
CoddyTech

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

Coddy'nin Java Journey'sinin Temeller bölümünün bir parçası. Ders 25 / 73.

Birden fazla koşulu kontrol ederken bilgisayar, nihai yanıtı öğrendiği anda kontrol etmeyi bırakır (Buna kısa devre değerlendirmesi denir).

Örneğin:

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

Burada x, 0 değerine eşittir, bu nedenle y / x > 2 ifadesini değerlendirmez. Sırayı tersine çevirirsek:

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

Bu bir hataya yol açar çünkü y 0'a bölünür; bu 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;
boolean result = (a > 0 && b < 2) || (c < -5 && d < 10);

Bu örnekte, b < 2 ve d < 10 değerlendirilmeyecek çünkü a > 0 ve c < -5 koşullarının ikisi de yanlış.

Sağ operand bir metot çağrısı da olabilir ve aynı kural geçerlidir. false && someMethod() ifadesinde metot hiçbir zaman çağrılmaz çünkü sol tarafın yanlış olması && sonucunu zaten belirler. true || anotherMethod() ifadesinde de metot hiçbir zaman çağrılmaz çünkü sol tarafın doğru olması || sonucunu zaten belirler. Sağ operand yalnızca sol taraf sonucu belirlemediğinde değerlendirilir.

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:

  • isSunny değeri true olacak şekilde
  • windSpeed değeri 5.4 olacak şekilde
  • temperature değeri 23 olacak şekilde
  • solarPanelOutput değeri 9 olacak şekilde
  • isCloudy değeri false olacak şekilde

Bu koşulların TÜMÜNÜ kontrol eden tek bir mantıksal ifade oluştur:

  • Hava güneşli
  • Rüzgâr hızı 10'dan düşük
  • Güneş paneli çıkışı 15'ten düşük
  • Sıcaklık 20'nin üzerinde VEYA hava bulutsuz

Kendin dene

public class Main {
    public static void main(String[] args) {
        // Değişkenleri başlatın
        // Aşağıdaki her yer tutucu değeri, görevin istediği değerle değiştirin
        boolean isSunny = false;
        double windSpeed = 0.0;
        int temperature = 0;
        int solarPanelOutput = 0;
        boolean isCloudy = false;

        // Tam mantıksal ifade
        // Aşağıdaki yer tutucuyu, dört koşulun tümünü birleştiren tek bir ifadeyle değiştirin
        boolean result = false;

        // Aşağıdaki satırları silmeyin
        System.out.println("Checking conditions for solar energy production...");
        System.out.println("1. Is it sunny? " + isSunny);
        System.out.println("2. Is wind speed safe? " + (windSpeed < 10));
        System.out.println("3. Can panels produce more? " + (solarPanelOutput < 15));
        System.out.println("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
        System.out.println("\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

Kendi başına pratik yap: Online Java derleyicisi