Τελεστές σύγκρισης
Προηγ | Κεφάλαιο 6. Προγραμματισμός με GEL | Επόμενο

## Τελεστές σύγκρισης

Οι παρακάτω τυπικοί τελεστές σύγκρισης υποστηρίζονται στο GEL και έχουν την προφανή σημασία: `==`, `>=`, `<=`, `!=`, `<>`, `<`, `>`. Επιστρέφουν `αληθές` ή `ψευδές`. Οι τελεστές `!=` και `<>` είναι το ίδιο πράγμα και σημαίνουν "δεν είναι ίσο με". Η GEL επίσης υποστηρίζει τον τελεστή `<=>`, που επιστρέφει -1 αν το αριστερό μέλος είναι μικρότερο, 0 αν και τα δύο μέλη είναι ίσα, 1 αν το αριστερό μέλος είναι μεγαλύτερο.

Κανονικά `=` μεταφράζεται σε `==` αν συμβεί να είναι κάπου όπου το GEL αναμένει μια συνθήκη όπως στη συνθήκη if. Για παράδειγμα

    if a=b then c
    if a==b then c

είναι το ίδιο πράγμα στη GEL. Όμως, θα πρέπει να χρησιμοποιήσετε πραγματικά το `==` ή `:=` όταν θέλετε να συγκρίνετε ή να αναθέσετε αντίστοιχα, αν θέλετε ο κώδικας σας να είναι ευανάγνωστος και να αποφύγετε λάθη.

Όλοι οι τελεστές σύγκρισης (εκτός από τον τελεστή `<=>` που συμπεριφέρεται κανονικά), δεν είναι αυστηρά δυαδικοί τελεστές, μπορούν στην πραγματικότητα να ομαδοποιηθούν με τον κανονικό μαθηματικό τρόπο, π.χ.: (`1<x<=y<5`) είναι μια επιτρεπτή παράσταση λογικών τιμών και σημαίνει ακριβώς αυτό που πρέπει, δηλαδή (1<x and x≤y and y<5)

Για να δημιουργήσετε λογικές παραστάσεις χρησιμοποιήστε τις λέξεις `not`, `and`, `or`, `xor`. Οι τελεστές `or` και `and` είναι ειδικές οντότητες επειδή υπολογίζουν τα ορίσματά τους ένα προς ένα, έτσι το συνηθισμένο κόλπο για υπό όρο υπολογισμό δουλεύει εδώ επίσης. Για παράδειγμα, `1 or a=1` δεν θα ορίσουν `a=1` αφού το πρώτο όρισμα ήταν αληθές.

Προηγ | Πάνω | Επόμενο
Sums και Products (αθροίσματα και γινόμενα) | Αρχή | Καθολικές μεταβλητές και εμβέλεια μεταβλητών