Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Vytvorte si číselný rad . Ak ešte nemáte číselný rad vo vašom programe , môžete použiť nasledujúce ukážkovej :
int [ ] myNums = { 3 , 5 , 1 , 6 , 5 , 8 , 7 } ;
Tento riadok deklaruje a vytvorí inštanciu polia s primitívny typ celočíselné hodnoty . Ako môžete vidieť , duplicitné hodnota je číslo päť . Pripravte si dve premenné pre uloženie duplicitné číselnú hodnotu a postoj , ktorý sedí v rámci poľa :
int dupNum = -1 ; int dupPos = -1 ;
inicializácia to na zápornú , budete môcť zistiť , či váš proces nájde duplicitné hodnoty v poli , alebo nie .
2
Vytvorte slučku na iterovat cez pole . Pridajte nasledujúcu štruktúru slučky osnovy do programu :
for ( int i = 1 ; i < myNums.length ; i + + ) { obsah tu //procesné }
Táto slučka bude iterovat raz každý prvok v číselnom poli . Vnútri slučky , môžete implementovať proces kontroly , porovnávanie každú položku na predchádzajúcej položky v štruktúre . Uložte aktuálnu číselnú hodnotu v lokálnej premennej vnútri vášho cyklu : int currNum = myNums [ i ] ;
Táto hodnota predstavuje celé číslo v aktuálnej polohe , kedykoľvek iterácia slučky
. 3
Vytvorte druhú slučku vnútri prvý . Pridajte nasledujúci slučky obrys po uloženie aktuálnej hodnoty v jeho premennej :
for ( int j = 0 ; j < i , j + + ) { //skontrolovať predchádzajúce hodnoty }
Vnútri tejto slučky , môžete porovnať aktuálnu hodnotu na ktoré sú uvedené v predchádzajúcich pozícií v poli . Týmto spôsobom môžete zistiť , či aktuálna hodnota je duplicitné .
4
Porovnajte aktuálne číslo na predchádzajúce hodnoty . Vnútri svojho druhého cyklu for , pridajte nasledujúce podmienený príkaz : klipart
( currNum == myNums [ j ] ) { //hodnota je duplicitné }
Ak tento test vracia hodnotu true , znamená to , že aktuálny prvok poľa sa rovná predchádzajúcej , s jeho polohy označenej na druhý počítač slučky . Vnútri podmienený príkaz if , pokyn program , čo má robiť , keď narazí na duplikát :
dupNum = currNum ; dupPos = i; break ;
kód nastaví hodnoty duplicitné čísla a jeho pozície tak , že budú dostupné , keď je slučka skončí . Žiadne ďalšie bod existuje pre pokračovanie slučky v tejto fáze , takže príkaz break sa zastaví z ďalšej iterácie .
5
vymaniť sa z prvého cyklu . Príkaz break preruší iba kód z najbližšieho okruhu . To znamená , že vonkajšia slučka bude pokračovať , aj keď ste našiel duplicitné hodnoty . Po zatváracej držiak pre premetu , pridajte nasledujúce podmienený príkaz : klipart
( dupNum > = 0 ) break ;
Ak nebol nájdený duplicitné , vonkajšie slučka bude pokračovať v realizácii . Môžete pridať nasledujúce skúšobné vyhlásenie po tom , čo váš vonkajšie slučka uzatvára :
System.out.println ( " Duplicitné číslo : " + dupNum + " , pozície " + dupPos ) ;
Ak je váš kód nie je umiestnený duplikát , obe premenné bude aj naďalej ukladať hodnoty negatívny .