ΥπολογιστέςΠρογραμματισμός

Ατελείωτες για τον κύκλο (Java)

Στην Java, όπως και σχεδόν σε κάθε γλώσσα προγραμματισμού, υπάρχουν εργαλεία για να παρέχουν πολλαπλή επανάληψη ενός συγκεκριμένου κομμάτι κώδικα, ή, όπως ονομάζονται, κύκλοι. Οι βρόχοι σε Java εκπροσωπείται από φορείς, όπως για και ενώ, καθώς και τις ποικιλίες τους. Τυπικά, οι κύκλοι χρησιμοποιούνται για τη διέλευση των μονοδιάστατων και πολυδιάστατων συστοιχίες και iterable δομές δεδομένων (συμπεριλαμβανομένων συλλογές) για να βρει ορισμένα αντικείμενα και περαιτέρω λειτουργίες με αυτές. Ωστόσο, αυτή δεν είναι η μόνη μέθοδος που χρησιμοποιούν ένα εργαλείο όπως ο κύκλος της Java. Παραδείγματα χρήσης θα ενεργοποιείται ως αντάλλαγμα τους.

Βρόχος Το ενώ το Java: περιγραφή και παραδείγματα

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

ενώ (συνθήκη) {

// σώμα βρόγχου

}

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

Για λόγους σαφήνειας, ας δούμε ένα παράδειγμα, φαίνεται στο παρακάτω σχήμα:

Κρίθηκε μεταβλητή count αρχικά οριστεί σε 1. Στη συνέχεια, βλέπουμε μια λογική έκφραση που περικλείεται σε παρένθεση μετά το όνομα του χειριστή. Είναι αλήθεια, ότι είναι, επιστρέφουν την τιμή αληθές, εφ 'όσον η τιμή της μεταβλητής count είναι μικρότερη ή ίση με 10. Στο βρόχο με κάθε πέρασμα (επανάληψη) η μεταβλητή τιμή αυξάνεται κατά 1 και εμφανίζεται στην οθόνη της κονσόλας. Σημειώστε ότι όταν η τιμή της μεταβλητής έχει φτάσει 11, ο κύκλος σταμάτησε να λειτουργεί.

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

Αξίζει να σημειωθεί ότι η σύνταξη της Java επιτρέπει τη χρήση της δήλωσης, ενώ χωρίς το σώμα. Εδώ είναι ένα παράδειγμα. Ας πούμε ότι έχουμε δύο μεταβλητές i = 100 και j = 200, βρισκόμαστε αντιμέτωποι με το έργο του λογισμικού για τον υπολογισμό της μέσης τους - μπορείτε να χρησιμοποιήσετε το «κούφια», ενώ:

ενώ (++ i <- ι)?

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

Ο κύκλος της do-while

Στο προηγούμενο παράδειγμα, αν η υπό όρους έκφραση αρχικά επέστρεψε ψευδής, τότε το πρόγραμμα θα αγνοήσει το σώμα του βρόχου και συνέχισε. Ωστόσο, συχνά υπάρχουν περιπτώσεις στις οποίες η εκτέλεση του κώδικα που περιέχεται στο σώμα του βρόχου, να είστε βέβαιος να τουλάχιστον μία φορά, ανεξάρτητα από την αλήθεια της υπό όρους έκφρασης. Με άλλα λόγια, συμβαίνει να ελέγχουν την εγκυρότητα της υπό όρους έκφρασης δεν απαιτείται στην αρχή και στο τέλος του κύκλου. Αυτή η λειτουργία μπορεί να παρέχει ένα είδος ενός βρόχου, ενώ λέγεται do-while. Έχει την ακόλουθη μορφή:

κάνει {
// σώμα βρόγχου

} Ενώ (κατάσταση)?

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

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

Περιγραφή και παραδείγματα - κύκλο Java

Για κύκλος είναι μια ευέλικτη και αποτελεσματική γλωσσική μορφή σε Java. Μέχρι την πέμπτη έκδοση του Java SDK ήταν μόνο μια παραδοσιακή μορφή του για τη δήλωση, και μετά από μια νέα - για το καθένα. Στην ενότητα αυτή, θα διερευνήσει την παραδοσιακή μορφή του φορέα. για Java βρόχου είναι ως εξής:

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

Για την καλύτερη κατανόηση δίνουμε ένα παράδειγμα για το πώς κύκλου για Java:

Βλέπουμε ότι σε loopVal μεταβλητή χρησιμοποιείται ως μετρητής. Μετά από κάθε επανάληψη, η αξία του θα αυξηθεί κατά 1, και αυτό θα συμβεί μέχρι τότε, μέχρι να φτάσει 11. Σημειώστε ότι η μεταβλητή ελέγχου μπορεί να κηρυχθεί εκτός της για την κατάσταση, αλλά αν δεν θέλετε να χρησιμοποιήσετε αυτή τη μεταβλητή οπουδήποτε εκτός από στον κύκλο, καλό είναι να το δηλώσουν άμεσα στα αποτελέσματα. Λάβετε υπόψη ότι μια μεταβλητή που δηλώνεται στη δήλωση έχει πεδίο εφαρμογής σε αυτό το ίδιο κύκλο.

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

για (int i = 1, int j = 10? i

Σε κάθε επανάληψη, η τιμή της μεταβλητής i αυξάνεται κατά 1 και η τιμή της μεταβλητής j μειώνεται κατά 1. Οι επαναλήψεις θα εκτελούνται όσο το i είναι μεγαλύτερο ή ίσο με j.

Χαρακτηριστικά της αίτησης για τη δήλωση

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

boolean εξόδου = false?

για (int i = 0 ;! έξοδο? ++ θ) {

εξόδου = true?

}

Στο παραπάνω παράδειγμα μπορούμε να δούμε πώς ο κύκλος εργασιών είναι εντελώς ανεξάρτητη από τη μεταβλητή ελέγχου i και ο αριθμός των επαναλήψεων εξαρτάται εξ ολοκλήρου από το τι ώρα της μεταβλητής εξόδου θα πρέπει να οριστεί σε true. Επιπλέον, η μεταβλητή ελέγχου μπορεί να αφαιρεθεί εντελώς από τον κύκλο, και δεν θα επηρεάσει το έργο του: για (? Έξοδος ;!) {}. Αν και δεν είναι ο πιο λογικός τρόπος για να προγραμματίσετε, μπορεί μερικές φορές να είναι χρήσιμη. Το κύριο πράγμα - να προβλεφθεί μια κατάσταση στην οποία η μεταβλητή θα λάβει το δικαίωμα για έξοδο από την αξία του κύκλου, έτσι ώστε να μην μετατραπεί σε μια ατελείωτη.

Για κύκλου Java μπορεί να ανακοινωθεί και αυτό τον τρόπο: για (;;) {}. Αυτό είναι ένα τυπικό παράδειγμα μιας συνεχούς επανάληψης με τις ειδικές συνθήκες της διακοπής. Σχετικά με αυτό, πώς αυτό το είδος της διακοπής κύκλους, θα συζητήσουμε λίγο αργότερα.

Κύκλος με στυλ για κάθε

κύκλος foreach Java χρησιμοποιείται πάντα για τη διαδοχική διαλογή της συστοιχίας των στοιχείων ή οποιωνδήποτε δομές δεδομένων και να εκτελέσει πάνω τους ορισμένες επαναλαμβανόμενες κινήσεις. Παράδειγμα δίνονται για μορφές χειριστή παρουσιάζονται παρακάτω:

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

διακοπή Operators κύκλου

Υπάρχουν τρεις κύκλο χειριστής διακόπτει: διάλειμμα, επιστροφή και να συνεχίσουμε. Οι δύο πρώτοι είναι σε θέση να διακόψει τελείως τον κύκλο εργασιών, και να συνεχίσουν να εργάζονται διακόπτει μόνο την τρέχουσα επανάληψη. Αν χρησιμοποιείτε τον κωδικό σας σκόπιμα ατελείωτο κύκλο της Java, πρέπει να είναι παρόντες σε αυτό οι φορείς αυτοί. Σκεφτείτε ένα απλό παράδειγμα χρήσης διάλειμμα:

Παρά το γεγονός ότι η δήλωση αυτή παρέχεται για 11 επαναλήψεις, εκτελούνται μόνο 8 επειδή, όταν ο μετρητής i είναι ίσο με 7, κατάσταση εργασίας στην οποία το σώμα έχει μια εντολή break.

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

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

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

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

Στον κώδικα, ανακοίνωσε τα ονόματα των τριών μπλοκ με ετικέτες Ένα, δύο και τρία αντίστοιχα. Μια δήλωση ρήξη με ετικέτα Δύο ενσωματωμένα στα τρία τετράγωνα, αλλά προκάλεσε ένα πρόγραμμα από τρία και δύο τετράγωνα και θα συνεχίσει να εφαρμόζει σε μία μονάδα. δηλαδή στην κονσόλα θα δούμε δύο μηνύματα: Τρεις και μία.

συμπέρασμα

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 el.delachieve.com. Theme powered by WordPress.