OCA Java imtahan mövzuları

Logical Complement and Negation Operators | Logical Operators

Logical Complement and Negation Operators

İnkar operatorunu (negation operator ⇒ - ) boolean ifadəyə, logical complement operatorunu (!) isə numeric ifadəyə tətbiq etmək mümkün deyil, compile xətası baş verir:

int x = !5;          // does not compile
boolean y = -true;   // does not compile
boolean z = !0;      // does not compile

Digər proqramlaşdırma dillərindən fərqli olaraq java`da 1 ilə true 0 ilə false bir-biri ilə əlaqələnmir.

 

Logical Operators

 

*FIGURE 1. The logical true tables for &, |, and ^

java-logical-operators

Daha yaxşı yadda saxlamaq üçün qaydalar:

  • AND (&) ancaq o zaman true dəyərini ala bilər ki, müqayisə olunan hər iki tərəf true olsun;
  • Inclusive OR (|) ancaq o zaman false ola bilər ki, müqayisə olunan hər iki tərəf false olsun;
  • Exclusive OR (^) ancaq o zaman true ola bilər ki, müqayisə olunan tərəflər müxtəlif olsun.

Şərt operatorları &&|| həm də short-circuit operators adlanır, müvafiq olaraq &| operatorları ilə eyni işi görürlər, ancaq aralarında çox vacib bir fərq var:

  • &&|| istifadə olunan zaman əgər yekun nəticəni operatorun solundakı (left hand side) ifadəyə əsasən təyin etmək mümkündürsə, o zaman sağdakı (right hand side) ifadə icra edilmir (never evaluate);
    • if(x != null && x.length()<5){
        // if x is null x.length() doesn't execute, it prevents a NullPointerException
      }
  • Lakin &| operatorları ilə iş zamanı soldakı ifadənin nəticəsindən asılı olmayaraq sağdakı ifadə həmişə icra edilir.
    • if(x != null & x.length()<5){
        // if x is null x.length() throws NullPointerException
      }

Nümunəyə baxaq:

int y = 6;
boolean z = (y >= 6) || (++y <= 7);
System.out.println(y);  // y is 6, because ++y doesn't execute

 

Enthuware test bankında bu operatorla bağlı maraqlı bir sual nümunəsi var və həmin sual nümunəsi coderanch forumunda ətraflı şərh edilib. Müzakirələrə aşağıdakı linkdən baxa bilərsiniz:

https://goo.gl/VIcDMQ

 

[topics lang=az]

 

 “OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808”, by J.Boyarsky & S.Selikoff

About the author

Mushfiq Mammadov

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.