Wenn Sie einen numerischen Array in einem Java-Programm und haben es enthält eine unerwünschte doppelten Wert , können Sie brauchen, um es zu finden. Die Loop- Strukturen , kann der Code durch Ihre Array durchlaufen , Überprüfung jeder Wert zu sehen, ob es bereits aufgetreten ist und dass Sie wissen, wo das Duplikat ist . Durch die Einbettung einer Schleife in einem anderen, kann der Code jedes Element gegen vorherige Einzelteile zu überprüfen. Gönnen Sie sich eine klare Vorstellung des Prozesses durch das Denken den ganzen Weg durch , was passieren wird , wenn der Code ausgeführt wird jedes Mal, wenn Sie eine neue Kontrollstruktur. Anleitung
1
Erstelle deinen numerischen Array. Wenn Sie nicht bereits über eine Reihe Array in Ihrem Programm haben, können Sie das folgende Beispiel:
int [ ] = { myNums 3, 5, 1 , 6, 5 , 8, 7 };
Diese Zeile deklariert und instanziiert ein Array mit primitiven Typ Integer-Werte . Wie Sie sehen können , ist der doppelte Wert der Nummer fünf . Bereiten Sie zwei Variablen zum Speichern der duplizierten Zahlenwert und die Position es sitzt an innerhalb des Arrays : int
dupNum = -1; int dupPos = -1;
Initialisierung diese auf negative, Sie werden in der Lage sein zu sagen, ob Ihr Prozess einen doppelten Wert in dem Array findet oder nicht .
2
erstellen einer Schleife durch das Array zu durchlaufen. Fügen Sie die folgende Schleife Grobstruktur Ihr Programm :
for (int i = 1; i < myNums.length ; i + +) {//Prozess Inhalte here}
Diese Schleife wird einmal durchlaufen für jedes Element in Ihrem numerischen Array. Innerhalb der Schleife können Sie implementieren die Überprüfung Prozess , Vergleichen jedes Einzelteil zu den vorherigen Elemente in der Struktur. Speichern Sie die aktuelle Zahlenwert in einer lokalen Variablen innerhalb der Schleife : . Int currNum = myNums [i] ;
Dieser Wert stellt den ganzzahligen an der aktuellen Position , wenn die Schleife durchläuft
3
erstellen Sie eine zweite Schleife in der ersten. Fügen Sie die folgende Schleife Umriss , nachdem Sie den aktuellen Wert in seiner Variablen speichern :
for (int j = 0; j < i; j + +) {//prüfen vorherigen Werte }
Innerhalb dieser Schleife , können Sie den aktuellen Wert auf diejenigen erscheinen zu früheren Positionen im Array zu vergleichen. So können Sie erkennen, ob der aktuelle Wert ist ein Duplikat.
4
Vergleichen Sie die aktuelle Anzahl auf die vorherigen Werte kann . In Ihrem zweiten for-Schleife , die folgende bedingte Anweisung :
if ( currNum == myNums [j] ) {//Der Wert ist ein Duplikat }
Wenn dieser Test den Wert true zurückgibt , es bedeutet, dass der aktuelle Array-Element gleich einem früheren ist , mit seiner Position, die durch die zweite Schleife Zähler . Innerhalb der bedingte if-Anweisung , das Programm anweisen, was zu tun ist , wenn es ein Duplikat begegnet :
dupNum = currNum ; dupPos = i; break;
Der Code legt die Werte der duplizierten Anzahl und ihre Position , so dass sie in der zugänglich ist, wenn die Schleife beendet . Keine weiteren Punkt gibt es für die Fortführung der Schleife in diesem Stadium , so dass die break-Anweisung hält es aus Iteration weiter .
5
Brechen Sie aus der ersten Schleife . Die break-Anweisung bricht nur den Code aus der nächsten Schleife . Dies bedeutet, dass die äußere Schleife wird auch fortgesetzt, wenn Sie den doppelten Wert gefunden. Nach der schließenden Klammer für die innere Schleife , fügen Sie die folgende bedingte Anweisung :
if ( dupNum > = 0) break;
Wenn das Duplikat ist nicht gefunden worden , die äußere Schleife wird weiter ausgeführt . Sie können den folgenden Test -und Verlustrechnung nach dem äußeren Schleife schließt :
System.out.println (" Doppelte Zahl :" + + dupNum " , Position :" + dupPos );
< p> Wenn Ihr Code nicht ein Duplikat entfernt werden beide Variablen noch die Speicherung der Werte negativ.