Η ανάγκη επανάληψης κώδικα δεν μπορεί ποτέ να υποτιμηθεί στην αναζήτηση λύσεων σε μερικά από τα μεγαλύτερα προβλήματα του κόσμου. Αυτό που πρέπει να γνωρίζετε είναι ότι στον προγραμματισμό, η επανάληψη λαμβάνει μία από τις δύο μορφές - επανάληψη ή επανάληψη.

Ο στόχος εδώ είναι να σας παρουσιάσουμε την επανάληψη σε κώδικα και να δείξετε πώς μπορεί να χρησιμοποιηθεί για την ενίσχυση των προγραμμάτων Java.

Τα επαναλαμβανόμενα προγράμματα μπορούν να σας βοηθήσουν να επιλύσετε μερικά από τα πιο δύσκολα προβλήματα προγραμματισμού. Δείτε τι πρέπει να γνωρίζετε για να δημιουργήσετε αναδρομικά προγράμματα στην Java.

Χρησιμοποιώντας την επανάληψη

Η επανάληψη χρησιμοποιεί μια δομή βρόχου για να επαναλάβει τον κώδικα. Οι τρεις τύποι επαναληπτικών δομών είναι ο βρόχος προ-δοκιμής (ενώ), ο βρόχος μετά τον έλεγχο (do-while) και αντίθετος ελεγχόμενος βρόχος (για).

Αυτές οι επαναληπτικές δομές λειτουργούν επαναλαμβάνοντας ένα μπλοκ κώδικα ενώ παραμένει μια συγκεκριμένη κατάσταση αλήθεια, αλλά μόλις αυτή η κατάσταση γίνει ψευδής, ο βρόχος σταματά και το πρόγραμμα επιστρέφει στο φυσιολογικό του ροή.

instagram viewer

Για παράδειγμα, θα μπορούσαμε να χρησιμοποιήσουμε μία από τις επαναλαμβανόμενες δομές για την επίλυση του προβλήματος του αθροίσματος όλων των ακεραίων από 1 έως n. Ανάλογα με την επαναληπτική δομή που χρησιμοποιείται, η λύση θα λάβει μια συγκεκριμένη μορφή, αλλά οποιαδήποτε Οι τρεις επαναλαμβανόμενες δομές μπορούν να παρέχουν μια λύση για αυτό το πρόβλημα χρησιμοποιώντας τα ακόλουθα ψευδοκώδικας.

Παράδειγμα ψευδοκώδικα επανάληψης


ΑΡΧΗ
ΑΠΟΚΛΕΙΣΜΟΣ άθροισμα, μετράται ως ακέραιος
άθροισμα = 0
μέτρηση = 1
ΕΠΑΝΑΛΑΜΒΑΝΩ
Άθροισμα = άθροισμα + μέτρηση
Πλήθος = μέτρηση + 1
ΕΩΣ ΑΡΙΘΜΟΣ> n
ΤΕΛΟΣ

Ο παραπάνω ψευδοκώδικας έχει δύο μεταβλητές, το άθροισμα και τον αριθμό, που αρχικοποιούνται σε 0 και 1 αντίστοιχα. Η μεταβλητή "count" αρχικοποιείται σε 1 επειδή το πρόβλημα που προσπαθούμε να λύσουμε δηλώνει ότι χρειαζόμαστε το άθροισμα όλων των ακέραιων αριθμών από 1 έως n.

Στη μεταβλητή "n" θα εκχωρηθεί ένας τυχαίος αριθμός από τον χρήστη και η μεταβλητή "count" θα αυξηθεί κατά μία όταν εκτελείται ένας βρόχος, αλλά μόλις η τιμή της μεταβλητής "πλήθος" υπερβεί την τιμή του "n", τότε ο βρόχος θα να σταματήσει.

Γιατί να χρησιμοποιήσετε την αναδρομή;

Αν θέλαμε να εξετάσουμε τα γεγονότα γύρω από την επανάληψη και την επανάληψη, θα βρούμε πολλά πράγματα αληθινά.

  • Και οι δύο μέθοδοι περιλαμβάνουν επανάληψη.
  • Και οι δύο μέθοδοι απαιτούν μια δοκιμαστική συνθήκη, η οποία θα δείχνει πότε πρέπει να σταματήσει.
  • Και οι δύο μέθοδοι θεωρητικά μπορούν να εκτελεστούν για πάντα, εάν δεν δοθεί ή ικανοποιηθεί μια κατάσταση εξόδου.
  • Οποιοδήποτε πρόβλημα μπορεί να λυθεί χρησιμοποιώντας επαναλήψεις μπορεί επίσης να λυθεί χρησιμοποιώντας αναδρομή και το αντίστροφο.

Γιατί λοιπόν θα θέλαμε να επιλέξουμε τη μία μέθοδο από την άλλη; Η απλή απάντηση είναι η αποτελεσματικότητα. Με την επανάληψη, ένας προγραμματιστής μπορεί να χρησιμοποιήσει λιγότερο κώδικα για να επιτύχει αυτό που είναι ουσιαστικά το ίδιο αποτέλεσμα. Λιγότερος κωδικός σημαίνει ότι υπάρχει σημαντική μείωση της πιθανότητας να μην γίνονται αντιληπτά τα λάθη.

Η αναδρομή χρησιμοποιεί περισσότερη μνήμη και είναι πιο αργή από την επανάληψη, αλλά έχει μια ενσωματωμένη στοίβα (δομή δεδομένων). Με την επανάληψη θα πρέπει να δημιουργήσετε μια δομή δεδομένων (ουσιαστικά επανεφεύρεση του τροχού), αφήνοντας το πρόγραμμά σας ανοιχτό σε μεγαλύτερη πιθανότητα μη καταγεγραμμένων σφαλμάτων λόγω του επιπλέον κώδικα.

Σχετιζομαι με: Εξαιρέσεις Java: Τους χειρίζεστε σωστά;

Πώς λειτουργεί η αναδρομή

Η επανάληψη είναι το όνομα που δίνεται σε μια διαδικασία όπου μια συνάρτηση αποκαλείται επανειλημμένα μέχρι να ικανοποιηθεί μια συγκεκριμένη συνθήκη. Αυτή η επαναλαμβανόμενη μέθοδος επιλύει προβλήματα, χωρίζοντάς τα σε μικρότερες, απλούστερες εκδόσεις τους.

Κάθε αναδρομική συνάρτηση αποτελείται από δύο μέρη - βασική θήκη και γενική θήκη.

Βασική δομή ενός παραδείγματος αναδρομικής συνάρτησης


Λειτουργία(){
//βασικό σενάριο
// γενική περίπτωση
}

Η βασική θήκη είναι το τμήμα της αναδρομικής συνάρτησης που λύνει το πρόβλημα. Έτσι, κάθε φορά που η αναδρομική συνάρτηση φτάνει στη βασική περίπτωση, το πρόγραμμα βγαίνει από την αναδρομική λειτουργία και συνεχίζει με τη φυσική του ροή.

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

Χρησιμοποιώντας το Recursion σε Java

Ορισμένες γλώσσες προγραμματισμού υποστηρίζουν μόνο την επανάληψη, ενώ άλλες υποστηρίζουν μόνο την επανάληψη. Ευτυχώς, η Java είναι μία από τις γλώσσες που υποστηρίζουν και τις δύο επαναλαμβανόμενες μεθόδους.

Στην Java η αναδρομή χρησιμοποιείται με τον ίδιο τρόπο που χρησιμοποιείται σε οποιαδήποτε άλλη γλώσσα που την υποστηρίζει. Το κλειδί είναι να διασφαλίζετε πάντα ότι η αναδρομική σας λειτουργία έχει τόσο μια βάση όσο και μια γενική περίπτωση, με αυτή τη σειρά.

Ας επιστρέψουμε στο αρχικό μας παράδειγμα αθροίσματος, ο στόχος είναι να βρούμε το άθροισμα όλων των ακέραιων αριθμών από 1 έως n, όπου το n είναι ένας ακέραιος αριθμός που παρέχεται από τον χρήστη.

Παράδειγμα αναδρομής Java


// αναδρομική συνάρτηση
int Sum (int n) {
//βασικό σενάριο
αν (n <= 1) {
επιστροφή 1;
}
// γενική περίπτωση
αλλού{
απόδοση n + Άθροισμα (n-1);
}
}

Η αναδρομική συνάρτηση παραπάνω παίρνει έναν ακέραιο «n» και τερματίζει την εκτέλεση μόνο όταν η τιμή του n είναι μικρότερη ή ίση με 1.

Εάν επρόκειτο να περάσουμε τον ακέραιο αριθμό 5 στο παραπάνω πρόγραμμα, η μεταβλητή "n" θα είχε την τιμή 5. Στη συνέχεια, η τιμή του "n" θα ελεγχόταν στη βασική περίπτωση, αλλά δεδομένου ότι το 5 είναι μεγαλύτερο από 1 "n" θα μεταφερθεί τώρα στη γενική περίπτωση.

Σε αυτό το παράδειγμα, η γενική περίπτωση θα καλέσει την αναδρομική συνάρτηση τέσσερις φορές. Στην τελική συνάρτηση κλήση η τιμή του «n» θα είναι 1, ικανοποιώντας αποτελεσματικά τις απαιτήσεις της βασικής θήκης με αποτέλεσμα τον τερματισμό της αναδρομικής συνάρτησης και την επιστροφή 15.

Εάν αλλάξουμε την τιμή του "n" σε 7, η αναδρομική συνάρτηση θα καλείται έξι φορές και θα επιστρέψει 28 πριν τερματίσει την εκτέλεση.

Θέλετε να το δοκιμάσετε μόνοι σας; Μπορείτε να εκτελέσετε το αναδρομικό πρόγραμμα παραπάνω χρησιμοποιώντας την ακόλουθη γραμμή κώδικα στην κύρια λειτουργία του προγράμματος Java.


System.out.println (Άθροισμα (7));

Τι μάθατε

Εάν το καταφέρατε σε ολόκληρο το άρθρο, έχετε πλέον μια βασική κατανόηση των δύο επαναλαμβανόμενων μεθόδων που χρησιμοποιούνται στον προγραμματισμό. Τώρα αναγνωρίζετε τις ομοιότητες μεταξύ επανάληψης και επανάληψης και γιατί ένας προγραμματιστής θα επέλεγε να χρησιμοποιήσει αναδρομή κατά την επανάληψη και πώς να χρησιμοποιήσει μια αναδρομική συνάρτηση στην Java.

Πιστωτική εικόνα: ThisIsEngineering /Πεξέλ

ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ
Τι είναι η αναδρομή και πώς τη χρησιμοποιείτε;

Μάθετε τα βασικά της αναδρομής, το βασικό αλλά ελαφρώς μυαλό εργαλείο για τους προγραμματιστές.

Διαβάστε Επόμενο

Σχετικά θέματα
  • Προγραμματισμός
  • Ιάβα
Σχετικά με τον Συγγραφέα
Kadeisha Kean (Δημοσιεύθηκαν 7 άρθρα)

Ο Kadeisha Kean είναι προγραμματιστής λογισμικού πλήρους στοίβας και συγγραφέας τεχνικής / τεχνολογίας. Έχει την ξεχωριστή ικανότητα να απλοποιεί μερικές από τις πιο περίπλοκες τεχνολογικές έννοιες. παράγοντας υλικό που μπορεί εύκολα να γίνει κατανοητό από κάθε αρχάριο τεχνολογίας Είναι παθιασμένη να γράφει, να αναπτύσσει ενδιαφέρον λογισμικό και να ταξιδεύει στον κόσμο (μέσω ντοκιμαντέρ).

Περισσότερα από την Kadeisha Kean

Εγγραφείτε στο Newsletter μας

Εγγραφείτε στο ενημερωτικό δελτίο μας για τεχνικές συμβουλές, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!

Ένα ακόμη βήμα…!

Επιβεβαιώστε τη διεύθυνση email σας στο email που μόλις σας στείλαμε.

.