Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να βρείτε τον αριθμό Διπλασιασμός σε ένα Array σε Java

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

Δημιουργήστε αριθμητική σειρά σας . Αν δεν έχετε ήδη έναν αριθμό σειρά στο πρόγραμμά σας , μπορείτε να χρησιμοποιήσετε το ακόλουθο δείγμα :

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 ] ?

Αυτή η τιμή αντιπροσωπεύει τον ακέραιο στην τρέχουσα θέση κάθε φορά που οι βρόχος επαναλαμβάνει
εικόνων . 3

Δημιουργήστε ένα δεύτερο loop μέσα στο πρώτο . Προσθέστε την ακόλουθη περίληψη βρόχο μετά μπορείτε να αποθηκεύσετε την τρέχουσα τιμή στην μεταβλητή του :

για ( int j = 0 ? J <​​i ? J + + ) { //έλεγχος των προηγούμενων τιμών }

Μέσα σε αυτό το loop , μπορείτε να συγκρίνετε την τρέχουσα αξία με εκείνα που εμφανίζονται σε προηγούμενες θέσεις του πίνακα . Με αυτό τον τρόπο μπορείτε να πείτε εάν η τρέχουσα τιμή είναι ένα αντίγραφο .
Η 4

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

αν ( currNum == myNums [ j ] ) { //η τιμή είναι ένα αντίγραφο }

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

dupNum = currNum ? DupPos = i ? Σπάσει ?

Ο κώδικας καθορίζει τις τιμές του διπλός αριθμός και τη θέση του , έτσι ώστε θα είναι προσβάσιμο όταν ο βρόχος τελειώνει . Δεν υπάρχει άλλο σημείο για τη συνέχιση με το βρόχο σε αυτό το στάδιο , έτσι ώστε το break δήλωση ότι σταματά από την επανάληψη περαιτέρω .
5

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

εάν ( dupNum > = 0 ) διάλειμμα?

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

System.out.println ( " Διπλασιασμός του αριθμού : " + dupNum + " , η θέση του : " + dupPos ) ?

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα