Se si dispone di una matrice numerica in un programma Java e contiene un valore duplicato indesiderato , può essere necessario per trovarlo. Utilizzando strutture di ciclo , il codice può scorrere l'array , controllando ogni valore per vedere se si è già verificato e ti permette di sapere dove il duplicato è . Incorporando un ciclo all'interno di un altro , il codice può controllare ogni voce contro gli elementi precedenti . Datevi una chiara comprensione del processo di pensiero fino in fondo che cosa accadrà quando il codice viene eseguito ogni volta che si aggiunge una nuova struttura di controllo . Istruzioni
1
Creare l'array numerico . Se non si dispone già di un numero di serie nel programma , è possibile utilizzare il seguente esempio :
int [ ] myNums = { 3 , 5 , 1 , 6 , 5 , 8 , 7 } ;
Questa riga dichiara e crea un'istanza di un array con valori interi di tipo primitivo . Come si può vedere , il valore duplicato è il numero cinque . Preparare due variabili per memorizzare il valore di numero duplicato e la posizione che si siede a all'interno della matrice :
int dupNum = -1; int dupPos = -1;
inizializzazione questi a negativo , si sarà in grado di dire se il processo rileva un valore duplicato nella matrice oppure no .
2
creare un ciclo per scorrere l'array . Aggiungere la seguente struttura di massima ciclo per il vostro programma :
for (int i = 1; i < myNums.length ; i + + ) { //processo di contenuti qui }
Questo loop verrà iterare una volta per ogni elemento nella propria matrice numerica . All'interno del ciclo , è possibile implementare il processo di verifica , confrontando ogni voce le voci precedenti nella struttura . Memorizzare il valore del numero corrente in una variabile locale all'interno del ciclo : . Int currNum = myNums [ i] ;
Questo valore rappresenta il numero intero nella posizione corrente ogni volta che il ciclo si ripete
3
Creare un secondo ciclo all'interno del primo. Aggiungere il seguente schema ciclo dopo si memorizza il valore corrente nella sua variabile :
for (int j = 0; j
All'interno di questo ciclo , è possibile confrontare il valore corrente a quelli che compaiono in posizioni precedenti nella matrice. In questo modo si può dire se il valore corrente è un duplicato .
4
Confronta l'attuale numero di valori precedenti . Dentro il tuo secondo ciclo for , aggiungere la seguente istruzione condizionale :
se ( currNum == myNums [ j ] ) { //il valore è un duplicato }
Se questo test restituisce un valore vero , significa che l' elemento di matrice corrente è uguale a uno precedente , con la sua posizione indicata dal secondo contatore del ciclo . All'interno del condizionale if, indicare al programma cosa fare quando incontra un duplicato :
dupNum = currNum ; dupPos = i; pausa ;
Il codice imposta i valori del numero di duplicato e la sua posizione , in modo che essi siano accessibili quando termina il ciclo. Nessun ulteriore punto esiste per continuare con il ciclo , in questa fase , così l'istruzione break impedisce di iterare ulteriormente .
5
Break out del primo ciclo. L' istruzione break spezza solo il codice di fuori dal circuito più vicino . Ciò significa che il ciclo esterno continuerà anche quando si è trovato il valore duplicato . Dopo la parentesi di chiusura per il ciclo interno , aggiungere la seguente istruzione condizionale :
se ( dupNum > = 0 ) break;
Se il duplicato non è stato trovato , il ciclo esterno prosegue a . È possibile aggiungere la seguente istruzione di prova dopo il vostro ciclo esterno si chiude :
System.out.println ( "numero di duplicati : " + dupNum + " , posizione : " + dupPos ) ;
< p > Se il codice non ha localizzato un duplicato , entrambe le variabili sarà ancora la memorizzazione di valori di negativo.