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.
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:
isSunnydeğeri true olacak şekildewindSpeeddeğeri 5.4 olacak şekildetemperaturedeğeri 23 olacak şekildesolarPanelOutputdeğeri 9 olacak şekildeisCloudydeğ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);
}
}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
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüArtırma/AzaltmaSonradan Artırma/AzaltmaAritmetik KısayollarKarşılaştırma OperatörleriDize Karşılaştırması7Temel Girdi/Çıktı
System.out MetotlarıÇıktıyı BiçimlendirmeScanner SınıfıTekrar - 120'ye KadarTekrar - Doğru mu Yanlış mı5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Tekrar - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 4Kendi başına pratik yap: Online Java derleyicisi