Βίντεο: From C to Python by Ross Rheingans-Yoo 2024
Αν κολλήσατε σε μια έρημο νησί της Ιάβας με μόνο ένα είδος βρόχου, τι είδους θα θέλατε να έχετε; Η απάντηση είναι ότι μπορείτε να πάρετε μαζί με οποιοδήποτε είδος βρόχου. Η επιλογή μεταξύ ενός βρόχου
και
και ενός βρόχου
για
αφορά το στυλ και την απόδοση του κώδικα. Δεν πρόκειται για αναγκαιότητα.
Οτιδήποτε μπορείτε να κάνετε με έναν βρόχο
για
, μπορείτε να κάνετε και με έναν κύκλο
ενώ
. Εξετάστε, για παράδειγμα, αυτό το
για
r βρόχο. Ακολουθεί ο τρόπος με τον οποίο μπορείτε να επιτύχετε το ίδιο αποτέλεσμα με έναν κύκλο
ενώ
:
int count = 0.
ενώ (μετράει <10 ) {
έξω. εκτύπωση ("έχω μασήσει")?
έξω. εκτύπωση (μέτρηση);
έξω. println ("χρόνος (ες).");
αριθμός ++.
}
Στο βρόχο
ενώ
, έχετε ρητές δηλώσεις για να δηλώσετε, να αρχικοποιήσετε και να αυξήσετε τη μεταβλητή
count
.
Το ίδιο είδος κόλπου λειτουργεί αντίστροφα. Οτιδήποτε μπορείτε να κάνετε με βρόχο
ενώ
, μπορείτε επίσης να κάνετε και βρόχο
για
. Αλλά η μετατροπή ορισμένων
ενώ οι
βρόχοι σε
για βρόχους
φαίνεται τεταμένη και αφύσικη. Εξετάστε αυτό το
ενώ
βρόχος:
ενώ (σύνολο <21) {
card = myRandom. nextInt (10) + 1.
σύνολο + = κάρτα.
Σύστημα. έξω. εκτύπωση (κάρτα);
Σύστημα. έξω. Τυπώνω(" ");
Σύστημα. έξω. println (σύνολο);
}
Η μετατροπή του βρόχου σε βρόχο
για
σημαίνει ότι σπαταλάτε τα περισσότερα από τα παρεμβαλλόμενα στοιχεία του
για
:
κάρτα = myRandom. nextInt (10) + 1.
σύνολο + = κάρτα.
Σύστημα. έξω. εκτύπωση (κάρτα);
Σύστημα. έξω. Τυπώνω(" ");
Σύστημα. έξω. println (σύνολο);
}
Ο προηγούμενος
βρόχος
έχει μια συνθήκη, αλλά δεν έχει αρχικοποίηση και καμία ενημέρωση. Είναι εντάξει. Χωρίς αρχικοποίηση, δεν συμβαίνει τίποτα ειδικό όταν ο υπολογιστής εισέρχεται πρώτα στον βρόχο
για
. Και χωρίς μια ενημέρωση, δεν συμβαίνει τίποτα ιδιαίτερο στο τέλος κάθε επανάληψης. Είναι παράξενο, αλλά λειτουργεί.
Συνήθως, όταν γράφετε μια δήλωση
για
, μετράτε πόσες φορές να επαναλαμβάνετε κάτι. Αλλά, στην πραγματικότητα, μπορείτε να κάνετε σχεδόν κάθε είδους επανάληψη με μια δήλωση
για
.