Δημιουργήστε αριθμητική σειρά σας . Αν δεν έχετε ήδη έναν αριθμό σειρά στο πρόγραμμά σας , μπορείτε να χρησιμοποιήσετε το ακόλουθο δείγμα :
int [ ] = { myNums 3 , 5 , 1 , 6 , 5 , 8 , 7 } ?
Αυτή η γραμμή δηλώνει και instantiates έναν πίνακα με ακέραιες τιμές πρωτόγονο είδος . Όπως μπορείτε να δείτε , η διπλότυπη τιμή είναι ο αριθμός πέντε . Ετοιμάστε δύο μεταβλητές για την αποθήκευση η διπλή αξία αριθμού και της θέσης που βρίσκεται στο εσωτερικό του πίνακα : int
dupNum = -1 ? Int dupPos = -1 ?
Με την προετοιμασία αυτών για την αρνητική , θα είστε σε θέση να πει εάν η διαδικασία σας βρίσκει μια διπλότυπη τιμή στον πίνακα ή όχι . 2
Δημιουργήστε ένα βρόχο για να μετακινηθείτε μέσα από σειρά σας . Προσθέστε την ακόλουθη δομή διάρθρωσης βρόχο στο πρόγραμμά σας :
για ( int i = 1 ? I Αυτός ο βρόχος θα επαναλάβει μία φορά για κάθε στοιχείο σε αριθμητική σειρά σας . Μέσα στο βρόχο , μπορείτε να εφαρμόσετε τη διαδικασία ελέγχου , συγκρίνοντας κάθε στοιχείο με τα προηγούμενα στοιχεία στη δομή . Αποθηκεύσετε την τρέχουσα αριθμητική τιμή σε μια τοπική μεταβλητή μέσα στο βρόχο σας : int currNum = myNums [ i ] ? Αυτή η τιμή αντιπροσωπεύει τον ακέραιο στην τρέχουσα θέση κάθε φορά που οι βρόχος επαναλαμβάνει Δημιουργήστε ένα δεύτερο loop μέσα στο πρώτο . Προσθέστε την ακόλουθη περίληψη βρόχο μετά μπορείτε να αποθηκεύσετε την τρέχουσα τιμή στην μεταβλητή του : για ( int j = 0 ? J <i ? J + + ) { //έλεγχος των προηγούμενων τιμών } Μέσα σε αυτό το loop , μπορείτε να συγκρίνετε την τρέχουσα αξία με εκείνα που εμφανίζονται σε προηγούμενες θέσεις του πίνακα . Με αυτό τον τρόπο μπορείτε να πείτε εάν η τρέχουσα τιμή είναι ένα αντίγραφο . Συγκρίνετε τον τρέχοντα αριθμό των προηγούμενων τιμών . Μέσα δεύτερη σας για βρόχο , προσθέστε την παρακάτω όρους δήλωση : αν ( currNum == myNums [ j ] ) { //η τιμή είναι ένα αντίγραφο } Εάν αυτός ο έλεγχος επιστρέφει μια αληθινή αξία , αυτό σημαίνει ότι η τρέχουσα συστοιχία στοιχείο είναι ίση με μια προηγούμενη, με τη θέση του υποδεικνύεται από τον απαριθμητή δεύτερο βρόχο . Μέσα από το υπό όρους δήλωση if , να αναθέσει το πρόγραμμα τι να κάνει όταν συναντά ένα αντίγραφο : dupNum = currNum ? DupPos = i ? Σπάσει ? Ο κώδικας καθορίζει τις τιμές του διπλός αριθμός και τη θέση του , έτσι ώστε θα είναι προσβάσιμο όταν ο βρόχος τελειώνει . Δεν υπάρχει άλλο σημείο για τη συνέχιση με το βρόχο σε αυτό το στάδιο , έτσι ώστε το break δήλωση ότι σταματά από την επανάληψη περαιτέρω . Διάλειμμα από το πρώτο loop . Η εντολή break σπάει μόνο τον κωδικό σας έξω από το πλησιέστερο βρόχο . Αυτό σημαίνει ότι ο εξωτερικός βρόχος θα συνεχίσει ακόμα και όταν έχετε βρει το διπλότυπη τιμή . Μετά την αγκύλη για το εσωτερικό βρόχο , προσθέστε την παρακάτω όρους δήλωση : εάν ( dupNum > = 0 ) διάλειμμα? Αν δεν έχει βρεθεί το αντίγραφο , ο εξωτερικός βρόχος θα συνεχίσει να εκτελεί . Μπορείτε να προσθέσετε την ακόλουθη δήλωση τεστ μετά εξωτερικός βρόχος σας κλείνει : System.out.println ( " Διπλασιασμός του αριθμού : " + dupNum + " , η θέση του : " + dupPos ) ? Εάν ο κωδικός σας δεν έχει εντοπίσει ένα αντίγραφο , και οι δύο μεταβλητές θα εξακολουθεί να αποθηκεύει τιμές αρνητική .
εικόνων . 3
Η 4
5
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα