Σπίτι Προσωπικά Οικονομικά Java Προγραμματισμός και αλλοιώσεις βρόχου - dummies

Java Προγραμματισμός και αλλοιώσεις βρόχου - dummies

Πίνακας περιεχομένων:

Βίντεο: Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ - ΕΦΑΡΜΟΓΗ 5 2024

Βίντεο: Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ - ΕΦΑΡΜΟΓΗ 5 2024
Anonim

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

Δήλωση αποκοπής Java

Πάρτε ένα gander στο παρακάτω πρόγραμμα. Το πρόγραμμα παράγει τυχαία έναν αριθμό από το 1 έως το 10 και ζητά επανειλημμένα από τον χρήστη να μαντέψει αυτόν τον αριθμό.

Λίστα 1

εισαγωγή static java. lang. Σύστημα. έξω; εισαγωγή java. χρήσιμο. Ερευνητής; εισαγωγή java. χρήσιμο. Τυχαίος; δημόσια τάξη GuessAgain {δημόσιο static void main (String args []) {πληκτρολόγιο σαρωτή = νέος σαρωτής (System.in); int numGuesses = 0; int randomNumber = νέα Τυχαία (). nextInt (10) + 1. έξω. println ("************"); έξω. println ("Καλώς ορίσατε στο παιχνίδι εικασίας"). έξω. println ("************"); έξω. println (); έξω. print ("Εισαγωγή int από 1 έως 10:"); int inputNumber = πληκτρολόγιο. nextInt (); numGuesses ++; ενώ (inputNumber! = RandomNumber) { έξω. println (); έξω. println ("Δοκιμάστε ξανά …"); έξω. print ("Εισαγωγή int από 1 έως 10:"); inputNumber = πληκτρολόγιο. nextInt (); numGuesses ++; } έξω. print ("κερδίζετε μετά"); έξω. println (numGuesses + "εικασίες"). πληκτρολόγιο. close ();}}

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

Τι είναι δύσκολο για αυτό το πρόγραμμα; Λοιπόν, μερικές δηλώσεις εμφανίζονται περισσότερες από μία φορές στο πρόγραμμα. Κανονικά, μια δήλωση που αντιγράφεται από ένα μέρος ενός προγράμματος σε άλλο δεν προκαλεί ανησυχία. Όμως, η συνολική στρατηγική φαίνεται ύποπτη. Το πρόγραμμα παίρνει έναν αριθμό από το χρήστη πριν από το βρόχο και (ξανά) μέσα στον βρόχο.

έξω. print ("Εισαγωγή int από 1 έως 10:"); int inputNumber = πληκτρολόγιο. nextInt (); numGuesses ++; ενώ (inputNumber! = RandomNumber) {out. println (); έξω. println ("Δοκιμάστε ξανά …"); έξω. print ("Εισαγωγή int από 1 έως 10:"); inputNumber = πληκτρολόγιο. nextInt (); numGuesses ++; }

Αυτός ο κώδικας χρησιμοποιεί ένα πρότυπο τέχνασμα για τη δημιουργία βρόχων. Ονομάζεται priming ένας βρόχος. Το μοτίβο είναι

Εισάγετε είσοδο ενώ η είσοδος που έχετε δεν είναι η τελευταία είσοδος { Αποκτήστε περισσότερη είσοδο }

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

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

Εισαγωγή 2

εισαγωγή static java. lang. Σύστημα. έξω; εισαγωγή java. χρήσιμο. Ερευνητής; εισαγωγή java. χρήσιμο. Τυχαίος; δημόσια τάξη GuessAgain {δημόσιο static void main (String args []) {πληκτρολόγιο σαρωτή = νέος σαρωτής (System.in); int inputNumber, numGuesses = 0; int randomNumber = νέα Τυχαία (). nextInt (10) + 1. έξω. println ("************"); έξω. println ("Καλώς ορίσατε στο παιχνίδι εικασίας"). έξω. println ("************"); έξω. println (); ενώ (αληθινό) { έξω. print ("Εισαγωγή int από 1 έως 10:"); inputNumber = πληκτρολόγιο. nextInt (); numGuesses ++; αν (inputNumber == randomNumber) { διάλειμμα; } έξω. println (); έξω. println ("Δοκιμάστε ξανά …"); } έξω. print ("κερδίζετε μετά"); έξω. println (numGuesses + "εικασίες"). πληκτρολόγιο. Κλείσιμο ()?}}

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

Αν κοιτάξετε την κατάσταση του βρόχου, μπορείτε να δείτε πώς λειτουργεί αυτό. Η κατάσταση του βρόχου είναι πάντα αλήθεια. Ανεξάρτητα από το τι συμβαίνει, η κατάσταση του βρόχου περνά πάντα τη δοκιμή του. Επομένως, η κατάσταση του βρόχου είναι μεγάλη απάτη. Ποτέ δεν πηδάτε από το βρόχο, παραλείποντας τη δοκιμή στην κατάσταση του βρόχου. Αντίθετα, μπορείτε να πηδήξετε όταν χτυπήσετε τη δήλωση break που βρίσκεται μέσα στο βρόχο (και χτυπήσατε τη δήλωση break όταν περάσατε από το τυχαίο μπλοκ if (inputNumber == randomNumber). Το όλο έργο λειτουργεί πολύ ωραία.

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

Με μια εντολή διακοπής, ο υπολογιστής μεταπηδά από ένα μόνο βρόχο. Εάν αυτός ο βρόχος συμβαίνει να είναι μέσα σε έναν άλλο βρόχο (ένας εξωτερικός βρόχος) ο υπολογιστής δεν πηδά έξω από τον εξωτερικό βρόχο.

Δημόσια τάξη BreakOutOfLoop {δημόσιο static κενό main (String [] args) { για (int i = 0; i <3; i ++) {) { Σύστημα. έξω. εκτύπωση (j + ""); εάν (j> 9) {break;} } Σύστημα. έξω. println ("ξέσπασε!"); } }} Για να απεικονιστεί, η παρακάτω εικόνα περιέχει την έξοδο του προηγούμενου κώδικα:

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

έξω από το του βρόχου j, αλλά είναι μέσα στο ο βρόχος για i. Από την άποψη του προγραμματιστή, ο κώδικας στην Καταχώριση 2 είναι πιο φυσικός από τον κώδικα στην Καταχώρηση 1. Μετά από όλα, πώς συνεχίζεται το παιχνίδι; Ο χρήστης μαντέψει, τότε ο υπολογιστής ελέγχει την εικασία και στη συνέχεια (αν η εικασία δεν είναι σωστή) ο υπολογιστής λέει "Δοκιμάστε ξανά. "Αυτή είναι η ακολουθία των συμβάντων όπως περιγράφεται στην Λίστα 2. Αλλά στην Λίστα 1, ο κώδικας μέσα στον βρόχο φαίνεται να περιγράφει τα γεγονότα με αντίστροφη σειρά: Ο βρόχος λέει" Δοκιμάστε ξανά "και στη συνέχεια ο χρήστης εισάγει έναν αριθμό.

Η λίστα 2 προσφέρει μια ωραία εναλλακτική λύση στην τεχνική του βρόχου-εκκίνησης στην Λίστα 1. Γιατί λοιπόν οι προγραμματιστές κάνουν τον κόπο να προωθήσουν τους βρόχους τους; Οι δηλώσεις σπασίματος έχουν κρυφά μειονεκτήματα; Λοιπόν, η απάντηση εξαρτάται από την άποψή σας. Ορισμένοι προγραμματιστές πιστεύουν ότι οι δηλώσεις σπασίματος σε βρόχους προκαλούν σύγχυση. Όλα τα άλματα από τη δήλωση στη δήλωση τους καθιστούν ζαλισμένα και τους θυμίζουν κάτι από τη δεκαετία του 1960 που ονομάζεται

κωδικός σπαγγέτι . (Ο κώδικας Spaghetti χρησιμοποιεί τις δηλώσεις του goto για να μεταβεί από τη μία δήλωση στην άλλη.Στο Pascal από το παράδειγμα , ο συγγραφέας Β. Burd λέει: "Ο προγραμματισμός με το goto είναι σαν να ταξιδεύεις στο Παρίσι με το κολύμπι στο σύστημα αποχέτευσης. σύντομες περικοπές, αλλά κανένας από αυτούς δεν αξίζει να πάρει.) Με τον ένα ή τον άλλο τρόπο, οι διαλυτικές δηλώσεις σε βρόχους είναι η εξαίρεση, όχι ο κανόνας. Χρησιμοποιήστε τα αν θέλετε, αλλά μην περιμένετε να βρείτε πολλά από αυτά στον κώδικα Java άλλων ανθρώπων. Η δήλωση συνέχισης της Java

Η λίστα 3 προσφέρει περισσότερη μυστική σάλτσα για τους βρόχους του προγράμματος. Φανταστείτε ένα παιχνίδι που παράγει τυχαία τρεις αριθμούς από 1 έως 20. Ο χρήστης παίρνει πέντε στροφές μαντέψει τους αριθμούς. Όταν ο χρήστης εισάγει μια σωστή εικασία, το πρόγραμμα συγχαίρει τον χρήστη. ("Καλή εικασία", λέει το πρόγραμμα.) Όταν ο χρήστης εισάγει μια εσφαλμένη εικασία, το πρόγραμμα δεν παρέχει ανατροφοδότηση.

Η λίστα 3 περιέχει κάποιο κώδικα για να συμβεί όλα αυτά.

Λίστα 3

εισαγάγετε στατική java. lang. Σύστημα. έξω; εισαγωγή java. χρήσιμο. Ερευνητής; εισαγωγή java. χρήσιμο. Τυχαίος; δημόσια τάξη GuessAgainAndAgain {δημόσιο static κενό main (String args []) {πληκτρολόγιο σαρωτή = νέος σαρωτής (System. in); int inputNumber; int randNum1 = νέα Τυχαία (). nextInt (20) + 1. int randNum2 = νέα Τυχαία (). nextInt (20) + 1. int randNum3 = νέα Τυχαία (). nextInt (20) + 1. έξω. println ("************"); έξω. println ("Καλώς ορίσατε στο παιχνίδι εικασίας"). έξω. println ("************"); έξω. println (); για το (int i = 0; i <5; i ++) {out. print ("Εισαγωγή int:"); inputNumber = πληκτρολόγιο. nextInt ();

αν (inputNumber! = RandNum1 && inputNumber! = RandNum2 && inputNumber! = RandNum3) { } έξω. println ("Καλή εικασία!"); έξω. println ();} έξω. print ("Οι αριθμοί είναι"); έξω. εκτύπωση (randNum1 + ""); έξω. εκτύπωση (randNum2 + ""); έξω. εκτύπωση (randNum3 + ""); πληκτρολόγιο. close ();}} Αυτή η εικόνα δείχνει την εκτέλεση ενός τέτοιου προγράμματος.

Η εντολή συνεχούς εντολής της Java λέει στον υπολογιστή να μεταβεί πίσω από τις υπόλοιπες εντολές μέσα στον βρόχο.Δηλαδή, αντί να εκτελέσει τις υπόλοιπες εντολές εντός του βρόχου, ο υπολογιστής μετακινείται στην αρχή της επόμενης επανάληψης του βρόχου. Έτσι, στην Λίστα 3, όταν το inputNumber δεν είναι τυχαία παραγόμενος αριθμοί του προγράμματος, ο υπολογιστής μεταβαίνει πέρα ​​από τον κώδικα "Καλή εικασία", αυξάνει τον απαριθμητή βρόχου (μεταβλητή i) και ζητά από τον χρήστη άλλη τιμή εισόδου. (Φυσικά, εάν ο μετρητής βρόχων χτυπά το όριο του, ο υπολογιστής δεν εκτελεί άλλη επανάληψη, αλλά ο υπολογιστής ξεκινάει από το βρόχο και εκτελεί οποιεσδήποτε δηλώσεις έρχονται μετά τον βρόχο.)

Μπορείτε εύκολα να ξαναγράψετε την καταχώριση 3 έτσι ώστε ο κώδικας να μην έχει συνέχεια δήλωση. Θα έπρεπε να βάλετε τον κώδικα "Καλή εικασία" μέσα σε μια εντολή if, αλλά αυτό θα ήταν εντάξει. Η δήλωση συνέχισης δεν κάνει πολλά για να βελτιώσει την εμφάνιση του προγράμματος Listing 3. Αλλά όταν θέλετε να αποφύγετε την εμφύτευση κώδικα μέσα σε δηλώσεις, η δήλωση συνεχίζεται έρχεται σε πρακτικό.

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

Java Προγραμματισμός και αλλοιώσεις βρόχου - dummies

Η επιλογή των συντακτών

Πρόσβαση χωρίς σύνδεση με το SharePoint Online Workspace - ανδρείκελοι

Πρόσβαση χωρίς σύνδεση με το SharePoint Online Workspace - ανδρείκελοι

Microsoft SharePoint Workspace είναι ο καλλιτέχνης παλαιότερα γνωστός ως Microsoft Office Groove desktop εφαρμογή προσαρμοσμένη για άτομα που θέλουν να συνεργάζονται σε έγγραφα online και offline. Προσφέρεται μαζί με το Office 2010 και παρέχει μια διεπαφή χρήστη παρόμοια με την Εξερεύνηση των Windows για προβολή και επεξεργασία αρχείων και λιστών από μια τοποθεσία του SharePoint. SharePoint Workspace ...

Διατίθενται στη δημοσίευση του SharePoint 2010 - dummies

Διατίθενται στη δημοσίευση του SharePoint 2010 - dummies

Το Site δημοσίευσης του sharePoint 2010 παρέχει μια πλούσια εμπειρία επεξεργασίας καθιστά εύκολο για ένα μη τεχνικό πρόσωπο να δημιουργήσει ιστοσελίδες. Η προσθήκη του περιεχομένου σας στη σελίδα είναι γρήγορη. Το SharePoint παρέχει πολλά είδη δοχείων περιεχομένου που μπορείτε να χρησιμοποιήσετε κατά τη δημιουργία της σελίδας σας, συμπεριλαμβανομένων των πλαισίων κειμένου μιας γραμμής για την εισαγωγή μιας απλής γραμμής κειμένου ...

Για ιστότοπους SharePoint Online - dummies

Για ιστότοπους SharePoint Online - dummies

Μπορείτε να δημιουργήσετε και να αναπτύξετε τρεις κύριους τύπους σελίδων του SharePoint όχι λιγότερο!) - το καθένα με ξεχωριστή λειτουργία: περιεχόμενο, τμήματα Web και εκδόσεις σελίδων. Σελίδα περιεχομένου: Επίσης γνωστή ως σελίδα wiki, αυτό είναι το μαχαίρι ελβετικού στρατού των σελίδων του SharePoint. Μια σελίδα περιεχομένου παρέχει όχι μόνο μια θέση ...

Η επιλογή των συντακτών

Τι είναι ένας χάρτης Java; - ανδρείκελα

Τι είναι ένας χάρτης Java; - ανδρείκελα

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

Λίγα περίεργα πράγματα για το Java Math - dummies

Λίγα περίεργα πράγματα για το Java Math - dummies

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

Η επιλογή των συντακτών

Πώς να δουλεύεις με τη νέα γκάμα Blur στο Photoshop CS6 - ανδρείκελα

Πώς να δουλεύεις με τη νέα γκάμα Blur στο Photoshop CS6 - ανδρείκελα

Από τα τρία νέα φίλτρα Blur στο Photoshop CS6, θα έχετε επίσης πρόσβαση σε δύο σχετικούς πίνακες ελέγχου, Εργαλεία θόλωσης και Εφέ θόλωσης, τα οποία περιέχουν τις επιλογές σας. Και τα τρία φίλτρα σας επιτρέπουν να δημιουργήσετε ειδικά εφέ. Blur πεδίου: Δημιουργεί μια συνολική θόλωση στην εικόνα σας. Με την προσθήκη πρόσθετων σημείων ελέγχου ή καρφίτσες, ...

Τρόπος εργασίας με τον πίνακα ιδιοτήτων στο Photoshop CS6 - ανδρείκελα

Τρόπος εργασίας με τον πίνακα ιδιοτήτων στο Photoshop CS6 - ανδρείκελα

, αυτόνομο πλαίσιο Μάσκες στο Photoshop CS6 προς όφελος του πίνακα Ιδιότητες, ο οποίος περιλαμβάνει τώρα τις δυνατότητες των πλαισίων Μάσκες και Προσαρμογές. Δεν υπάρχουν όμως ανησυχίες. Κανένα από τα χαρακτηριστικά που παρείχε προηγουμένως ο πίνακας "Μάσκες" χάθηκε. Ο νέος πίνακας Ιδιότητες σάς δίνει τη δυνατότητα να προσθέσετε, να επεξεργαστείτε και να διαχειριστείτε το στρώμα σας, ...

Πώς να εργάζεστε με το σημείο εξαφάνισης στο Photoshop CS6 - ανδρείκελα

Πώς να εργάζεστε με το σημείο εξαφάνισης στο Photoshop CS6 - ανδρείκελα

Μπορείτε να κάνετε ρεαλιστικές τροποποιήσεις σε εικόνες που έχουν προοπτικά επίπεδα. Με το Σημείο Εκκίνησης, καθορίζετε τα επίπεδα στις εικόνες σας και, στη συνέχεια, χρησιμοποιώντας μια ποικιλία τεχνικών, προσθέστε ή εξαλείψτε αντικείμενα σε αυτά τα αεροπλάνα. Ανοίξτε μια εικόνα που χρειάζεται επεξεργασία. Εάν θέλετε να επικολλήσετε ...