Logical Operators Part 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 son cevabı bildiği anda kontrolü durdurur (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'a eşittir, bu nedenle y / x > 2 değerlendirilmeyecek. Eğer sırayı tersine çevirseydik:
boolean result = y / x > 2 && x != 0;Bu bir hataya yol açacak çünkü y 0'a bölünecek, bu matematikte yasaktır.
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 ikisi de yanlış.
Görev
BaşlangıçGüneş paneli enerji üretimi için iyi bir gün olup olmadığını belirlemek üzere bir program oluşturalım
Bu değişkenleri başlatın:
isSunnytrue değeri ilewindSpeed5.4 değeri iletemperature23 değeri ilesolarPanelOutput9 değeri ileisCloudyfalse değeri ile
Tüm bu koşulları kontrol eden tek bir mantıksal ifade oluşturun:
- Güneşli
- Rüzgar hızı 10'dan az
- Güneş paneli çıkışı 15'ten az
- Sıcaklık 20'nin üzerinde VEYA bulut yok
Kopya kağıdı
Java, birden fazla koşulu kontrol ederken kısa devre değerlendirmesi kullanır - sonucun belirlendiği anda değerlendirmeyi durdurur.
&& (VE) ile, ilk koşul yanlışsa, ikincisi değerlendirilmeyecektir:
int x = 0;
int y = 5;
boolean result = x != 0 && y / x > 2; // y / x > 2 is not evaluated|| (VEYA) ile, ilk koşul doğruysa, ikincisi değerlendirilmeyecektir:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
boolean result = (a > 0 && b < 2) || (c < -5 && d < 10);
// b < 2 and d < 10 are not evaluatedBu optimizasyon gereksiz hesaplamaları önler ve sıfıra bölme gibi çalışma zamanı hatalarını önleyebilir.
Kendin dene
public class Main {
public static void main(String[] args) {
// Değişkenleri başlat
// Tam mantıksal ifade
boolean result =
// 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
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else