java:operators

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:operators [2017/01/25 14:35]
gthanos [Δυαδικοί τελεστές και τελεστές ολίσθησης]
java:operators [2021/02/28 16:32]
gthanos [Δυαδικοί τελεστές και τελεστές ολίσθησης]
Line 56: Line 56:
 |  %%--%%  |  τελεστής μείωσης της υφιστάμενης τιμής κατά 1  | |  %%--%%  |  τελεστής μείωσης της υφιστάμενης τιμής κατά 1  |
  
-Οι τελεστές αύξησης ή μείωσης της τιμής κατά 1 (++,%%--%%), μπορούν να εφαρμοστούν πριν ή μετά την μεταβλητή. Για παράδειγμα, (result++) και (++result). Η διαφορά είναι ότι στην πρώτη περίπτωση επιστρέφεται η αρχική τιμή πριν από την αύξηση, ενώ στην 2η περίπτωση επιστρέφεται η νέα τιμή (μετά την αύξηση τις τιμής). Τρέξτε το παρακάτω παράδειγμα για να δείτε πως λειτουργεί ο τελεστής.+Οι τελεστές αύξησης ή μείωσης της τιμής κατά 1 (++,%%--%%), μπορούν να εφαρμοστούν πριν ή μετά την μεταβλητή. Για παράδειγμα, (result++) και (++result). Η διαφορά είναι ότι στην πρώτη περίπτωση επιστρέφεται η αρχική τιμή πριν από την αύξηση, ενώ στην δεύτερηη περίπτωση επιστρέφεται η νέα τιμή (μετά την αύξηση τις τιμής). Τρέξτε το παρακάτω παράδειγμα για να δείτε πως λειτουργεί ο τελεστής.
  
 <code java PrePostDemo.java> <code java PrePostDemo.java>
-class PrePostDemo {+class PreAndPostIncrementDemo {
     public static void main(String[] args){     public static void main(String[] args){
         int i = 3;         int i = 3;
Line 68: Line 68:
         // prints 5         // prints 5
         System.out.println(i);         System.out.println(i);
-        // prints 6+        // prints 6, i=6
         System.out.println(++i);         System.out.println(++i);
-        // prints 6+        // prints 6, i=7
         System.out.println(i++);         System.out.println(i++);
         // prints 7         // prints 7
         System.out.println(i);         System.out.println(i);
 +        // prints 7, i=6
 +        System.out.println(i--);
 +        // prints 5, i=5
 +        System.out.println(--i);
     }     }
 } }
Line 88: Line 92:
 |  %%<=%%  |**μικρότερο ή ίσο από** Ομοίως με παραπάνω, αλλά επιστρέφει **true** και στην ισότητα. | |  %%<=%%  |**μικρότερο ή ίσο από** Ομοίως με παραπάνω, αλλά επιστρέφει **true** και στην ισότητα. |
  
 +<code java ComparisonOperators.java>
 +
 +public class ComparisonOperators {
 +  public static void main(String []args) {
 +    int a = 5;
 +    int b = 8;
 +    if(a>=5) {
 +      System.out.println("a >= 5");
 +    }
 +    if(b<9) {
 +      System.out.println("b == 8");
 +    }
 +    if(b==8) {
 +      System.out.println("b == 8");
 +    }
 +    if(a!=6) {
 +      System.out.println("a != 6");
 +    }    
 +  }
 +}
 +</code>
 ===== Λογικοί τελεστές ===== ===== Λογικοί τελεστές =====
  
Line 98: Line 123:
 Αξίζει να προσέξετε τον **ternary operator** που αποτελεί σύντμηση μίας δήλωσης ''if-then-else''. Η κλάση ''ConditionalDemo2'' αποτελεί παράδειγμα χρήσης του συγκεκριμένου τελεστή. Αξίζει να προσέξετε τον **ternary operator** που αποτελεί σύντμηση μίας δήλωσης ''if-then-else''. Η κλάση ''ConditionalDemo2'' αποτελεί παράδειγμα χρήσης του συγκεκριμένου τελεστή.
  
-<code java ConditionalDemo1.java> +<code java LogicalOperatorsDemo.java> 
-class ConditionalDemo1 {+class LogicalOperatorsDemo {
  
-    public static void main(String[] args){ +  public static void main(String[] args){ 
-        int value1 = 1; +         
-        int value2 = 2; +    int = 1; 
-        if((value1 == 1&& (value2 == 2)) +    int = 2; 
-            System.out.println("value1 is 1 AND value2 is 2"); +    int c = 3; 
-        if((value1 == 1) || (value2 == 1)) +    if(== 1 && == 2) { 
-            System.out.println("value1 is 1 OR value2 is 1");+      System.out.println("== 1 AND b == 2");
     }     }
-+    if(a 0 || b == 1) { 
-</code> +      System.out.println("a > 0 OR b == 1");
- +
-<code java ConditionalDemo2.java> +
-class ConditionalDemo2 { +
- +
-    public static void main(String[] args){ +
-        int value1 = 1; +
-        int value2 = 2; +
-        int result; +
-        boolean someCondition = true; +
-        result = someCondition ? value1 : value2; +
- +
-        System.out.println(result);+
     }     }
 +    if(!(a != 1) && !(b != 1)) {
 +      System.out.println("NOT(a != 1) AND NOT(b != 1)");
 +    }
 +    if( a>0 && b>0 && c>0) {
 +      System.out.println("a > 0 AND b > 0 AND c > 0");
 +    }
 +    if( a<0 || b<0 || c>0) {
 +      System.out.println("a > 0 OR b > 0 OR c > 0");
 +    }
 +        
 +  }
 } }
-</code> 
  
-===== Τελεστής instanceof ===== 
- 
-Ο τελεστής ''instanceof'' συγκρίνει ένα αντικείμενο με ένα συγκεκριμένο τύπο δεδομένων (δηλαδή με μία κλάση). Με χρήση του τελεστή ''instanceof'' μπορούμε να εξετάσουμε εάν ένα αντικείμενο αποτελεί υλοποίηση μίας κλάσης ή υποκλάσης ή μιας κλάσης που υλοποιεί ένα συγκεκριμένο [[java:interfaces|interface]]. Δοκιμάστε το παρακάτω παράδειγμα. 
- 
-<code java MyInterface.java> 
-public interface MyInterface { 
-} 
 </code> </code>
  
-<code java Parent.java> +<code java TernaryOperatorDemo.java> 
-public class Parent { +class TernaryOperatorDemo {
-+
-</code>+
  
-<code java Child.java> +  public static void main(String[] args)
-public class Child extends Parent implements MyInterface +    int a = 1; 
-} +    int b = 2; 
-</code>+    int result; 
 +         
 +    result = a >= 1 ? ++a : ++b;
  
-<code java InstanceofDemo.java> +    System.out.println("a: "+a+", b: "+b+", result: "+result); 
-class InstanceofDemo { +  }
-    public static void main(String[] args) { +
- +
-        Parent obj1 = new Parent(); +
-        Parent obj2 = new Child(); +
- +
-        System.out.println("obj1 instanceof Parent: " +
-            (obj1 instanceof Parent)); +
-        System.out.println("obj1 instanceof Child: " +
-            (obj1 instanceof Child)); +
-        System.out.println("obj1 instanceof MyInterface: " +
-            (obj1 instanceof MyInterface)); +
-        System.out.println("obj2 instanceof Parent: " +
-            (obj2 instanceof Parent)); +
-        System.out.println("obj2 instanceof Child: " +
-            (obj2 instanceof Child)); +
-        System.out.println("obj2 instanceof MyInterface:+
-            + (obj2 instanceof MyInterface)); +
-    }+
 } }
 </code> </code>
Line 180: Line 178:
 |  %%^%%  |  δυαδικό αποκλειστικό OR (exclusive OR)  | |  %%^%%  |  δυαδικό αποκλειστικό OR (exclusive OR)  |
  
-<code java BitDemo.java> +<code java BitOperatorsDemo.java> 
-class BitDemo +class BitOperatorsDemo 
-    public static void main(String[] args) { +  public static void main(String[] args) { 
-        int bitmask = 0x000F; +    int bitmask = 0x000F; 
-        int val = 0x2222+    int val = 0x4444
-        // prints "2" +    // prints 4 
-        System.out.println("val & bitmask: " + (val & bitmask)); +    System.out.println("val & bitmask: " + (val & bitmask)); 
-        System.out.println("bitmask << 2: " + (bitmask << 2)); +    // prints 16 
-        System.out.println("bitmask >> 1: " + (bitmask >> 1)); +    System.out.println("bitmask << 2: " + (bitmask << 2)); 
-        System.out.println("bitmask || (bitmask << 8): " + (bitmask | (bitmask << 8)) ); +    // prints 2 
-    }+    System.out.println("bitmask >> 1: " + (bitmask >> 1)); 
 +    // prints 64 
 +    System.out.println("bitmask | (bitmask << 8): " + (bitmask | (bitmask << 8)) ); 
 +  }
 } }
 </code> </code>
 +===== Τελεστές Ανάθεσης =====
 +
 +^  τελεστής  ^  επεξήγηση  ^  παράδειγμα  ^
 +|  =  |  απλός τελεστής ανάθεσης  | c=a; |
 +|  +=  |  πρόσθεση και ανάθεση  | c += a; -> c = c+a; |
 +|  -=  |  αφαίρεση και ανάθεση  | c -= a; -> c = c-a; |
 +|  *=  |  πολλαπλασιασμός και ανάθεση  | c *= a; -> c = c*a; |
 +|  /=  |  διαίρεση και ανάθεση    c/=a; -> c = c/a;  |
 +|  %=    υπόλοιπο ακέραιας διαίρεσης (οι τελεστέοι πρέπει να είναι ακέραιοι)  | c %= a; -> c = c%a;|
 +|  %%<<=%%  |  αριστερή ολίσθηση και ανάθεση  |  c %%<<%%= a; -> c = c%%<<%%a; |
 +|  %%>>=%%  |  δεξιά ολίσθηση και ανάθεση  |  c %%>>%%= a; -> c = c%%>>%%a; |
 +|  & |  δυαδικό AND και ανάθεση  | c&=a; -> c=c&a;|
 +|  %%|%%=  |  δυαδικό OR και ανάθεση  | c%%|%%=a; -> c=c%%|%%a;|
 +|  %%^%%=  |  δυαδικό XOR και ανάθεση  | c %%^%%=a; -> c=c%%^%%a; |
 +
 +<code java AssignmentOperators.java>
 +class AssignmentOperatorDemo {
 +  public static void main(String []args) {
 +    int a = 16;
 +    a += 16;
 +    System.out.println("a: "+a);
 +    a *= 2;
 +    System.out.println("a: "+a);
 +    a /= 4;
 +    System.out.println("a: "+a);
 +    a <<= 1;
 +    System.out.println("a: "+a);
 +    a >>= 2;
 +    System.out.println("a: "+a);
 +    a %= 7;
 +    System.out.println("a: "+a);
 +  }
 +}
 +</code>
 +
  
-| Προηγούμενο: [[:java:arrays Πίνακες ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:control_flow | Έλεγχος ροής προγράμματος ]] |+| Προηγούμενο: [[:java:literalsΚυριολεκτικά ]] | [[:toc | Περιεχόμενα ]] | Επόμενο: [[:java:control_flow | Ροή προγράμματος ]] |
  
java/operators.txt · Last modified: 2021/02/28 16:38 (external edit)