Βίντεο: Επίθετα - Γραμματική Αναγνώριση (Γ' - Δ' - Ε' - ΣΤ' τάξη) 2024
Ο χειριστής εκχώρησης σύνθεσης είναι ένας χειριστής που εκτελεί έναν υπολογισμό και μια εκχώρηση Την ίδια στιγμή. Όλοι οι δυαδικοί αριθμητικοί χειριστές της Java (δηλαδή αυτοί που λειτουργούν σε δύο τελεστές) έχουν ισοδύναμους χειριστές εκχώρησης σύνθετων στοιχείων.
Λειτουργία | Περιγραφή |
+ Προσθήκη και αντιστοίχιση | - = 999 Αφαίρεση και αντιστοίχιση |
/ = | Διαίρεση και αντιστοίχιση |
% = | Υπόλοιπο και αντιστοίχιση |
|
Η δήλωση |
a + = 10; | ισοδυναμεί με |
Επίσης, η πρόταση
z * = 2;
ισοδυναμεί με
z = z * 2.
Για να αποφύγετε τη σύγχυση, χρησιμοποιήστε εκφράσεις σύνθετων αναθέσεων από μόνοι τους, όχι σε συνδυασμό με άλλες εκφράσεις. Εξετάστε αυτές τις δηλώσεις:
int a = 2;
int β = 3;
a * = b + 1.
Είναι
7
ή
8
;
Με άλλα λόγια, είναι η τρίτη δήλωση ισοδύναμη με
a = a * b + 1; // Αυτό θα έδινε 7 ως αποτέλεσμα
ή
a = a * (b + 1). // Αυτό θα έδινε 8 ως αποτέλεσμα
Με την πρώτη ματιά, ίσως αναμένετε ότι η απάντηση είναι
7
, επειδή ο πολλαπλασιασμός έχει υψηλότερη προτεραιότητα από την προσθήκη. Όμως, η αντιστοίχιση έχει το χαμηλότερο προβάδισμα όλων και ο πολλαπλασιασμός εδώ γίνεται ως μέρος της ανάθεσης. Ως αποτέλεσμα, η προσθήκη πραγματοποιείται πριν από τον πολλαπλασιασμό - και η απάντηση είναι
8
. (Γκότσα!)