> ###### Επανάληψη και δομές με συνθήκη

> Η Logo έχει πρωτογενείς διαδικασίες οι οποίες χειρίζονται μια λίστα ως σειρά οδηγιών. Αρκετές από αυτές τις πρωτογενείς διαδικασίες μπορούν να ταξινομηθούν σε δυο κατηγορίες:

> - Επανάληψη, όπου στόχος είναι η επαναληπτική εκτέλεση μιας ενέργειας.
> - Δομές με συνθήκη, όπου στόχος είναι η εκτέλεση μιας ενέργειας όταν πληρούται κάποια συνθήκη.

> (Σημείωση: Υπάρχουν κάποιες άλλες πρωτογενείς διαδικασίες οι οποίες εκτελούν οδηγίες που δεν ανήκουν σε κάποια από αυτές τις κατηγορίες, για παράδειγμα, οι εκτέλεσε, ΠερίμενεΏσπου, συνεχώς και εκκίνηση. Για τις συνεχώς, εκκίνηση και ΠερίμενεΏσπου γίνεται επίσης λόγος στο κεφάλαιο Διαχείριση διεργασιών.)

> Η εντολή επανάλαβε αποτελεί ένα παράδειγμα πρωτογενούς διαδικασίας η οποία επιτρέπει την επαναληπτική εκτέλεση μιας οδηγίας.

> `επανάλαβε 3 [τύπωσε "γεια]`

> Η επανάλαβε δέχεται έναν αριθμό ως πρώτη είσοδο και μια λίστα την οποία θα εκτελέσει ως δεύτερη είσοδο. Όπως κάθε είσοδος, η λίστα προς εκτέλεση μπορεί να είναι η τιμή μιας μεταβλητής ή μια διαδικασία ή μια πρωτογενής διαδικασία, αρκεί να αποτελεί οδηγία. Για παράδειγμα:

> `κάνε "μήνυμα [τύπωσε "γεια]
> επανάλαβε 3 :μήνυμα`

> Οι εντολές ΕκτέλεσεΛίστα και ΕκτέλεσεΦορές αποτελούν άλλα παραδείγματα πρωτογενών διαδικασιών που ελέγχουν την επανάληψη. Οι εντολές αυτές εκτελούν μια επανάληψη με μεταβολή.

> Οι δομές με συνθήκη επιτρέπουν την εκτέλεση οδηγιών ανάλογα με το αν μια συνθήκη είναι σωστή ή όχι. Η αν είναι ένα παράδειγμα εντολής που χρησιμοποιείται για τον έλεγχο μιας συνθήκης.

> `αν ΣυντΨ > 100 [ΘέσεΧρώμα "κόκκινο]`

> Πληκτρολογήστε την παραπάνω οδηγία στο Κέντρο εντολών και πατήστε το πλήκτρο Enter. Στη συνέχεια σύρετε τη χελώνα στο πάνω μέρος της σελίδας και εκτελέστε ξανά την οδηγία.

> Η εντολή αν δέχεται δύο εισόδους. Η πρώτη του είσοδος είναι μια συνθήκη που δίνει αποτέλεσμα ΣΩΣΤΟ ή ΛΑΘΟΣ και η δεύτερη είσοδος είναι μια λίστα οδηγιών. Η λίστα οδηγιών για την εντολή αν εκτελείται υπό αίρεση: εκτελείται μόνο όταν πληρούται η συνθήκη.

> Υπάρχουν πολλές πρωτογενείς διαδικασίες που μπορούν να χρησιμοποιηθούν για τη δημιουργία δομών με συνθήκη. Διαβάστε το Συνοπτικό πίνακα των κατηγορημάτων.

> Η ΑνΔιαφορετικά είναι μια άλλη εντολή που κάνει έλεγχο συνθηκών. Η ΑνΔιαφορετικά δέχεται τρεις εισόδους. Όπως η αν, η πρώτη της είσοδος δίνει αποτέλεσμα ΣΩΣΤΟ ή ΛΑΘΟΣ, ενώ η δεύτερη είσοδος είναι μια οδηγία η οποία εκτελείται όταν η συνθήκη είναι σωστή. Η τρίτη της είσοδος είναι μια οδηγία η οποία εκτελείται όταν η συνθήκη είναι λάθος.

> Δείτε το ακόλουθο παράδειγμα:

> `συνεχώς [μπροστά 1]
> συνεχώς [ΑνΔιαφορετικά ΣυντΨ > 0 [ΘέσεΧρώμα "κόκκινο] [ΘέσεΧρώμα "μπλε]]`

> Και η εντολή αν και η εντολή ΑνΔιαφορετικά μπορούν να χρησιμοποιηθούν ως κανόνες διακοπής. Ένας κανόνας διακοπής παίρνει την ακόλουθη μορφή:

> Αν μια ειδική συνθήκη δώσει έξοδο ΣΩΣΤΟ, τότε διακόπτεται η διαδικασία.

> Η οδηγία αν στην ακόλουθη διαδικασία αποτελεί ένα παράδειγμα κανόνα διακοπής:

> `για πολυσπείρα :βήμα :γωνία :μεταβολή
> αν :βήμα > 200 [στοπ]
> μπροστά :βήμα
> δεξιά :γωνία
> πολυσπείρα :βήμα + :μεταβολή :γωνία :μεταβολή
> τέλος`

> Η στοπ είναι μια εντολή που σταματά μια διαδικασία. Άλλες εντολές είναι οι ΣταμάτησέΜε, ΌλαΣτοπ και έξοδος.