Als u een numerieke array in een Java-programma en het tot een ongewenste dubbele waarde bevat , kan het nodig zijn om het te vinden . Met behulp lus structuren , kan uw code doorlopen uw array , het controleren van elke waarde te zien of het al heeft plaatsgevonden en u te laten weten waar het duplicaat is . Door het inbedden van een lus binnen een andere , kan uw code controleert elk item tegen eerdere artikelen . Geef jezelf een duidelijk begrip van het proces door te denken helemaal door wat er zal gebeuren wanneer uw code wordt uitgevoerd telkens wanneer u een nieuwe controlestructuur voegen . Instructies 1 Maak uw numerieke array. ; Int [ ] myNums = { 3 , 5 , 1 , 6 , 5 , 8 , 7 } : als je niet al een aantal array in uw programma , kunt u de volgende voorbeeld gebruiken Deze lijn verklaart en instantieert een array met primitieve gehele waarden . Zoals u kunt zien , de dubbele waarde is het nummer vijf . Bereid twee variabelen voor het opslaan van de gedupliceerde nummer waarde en de positie waarin deze zit aan binnen de matrix: int dupNum = -1 ; int dupPos = -1 ; Door het initialiseren deze te negatief , zult u in staat om te zeggen of uw proces vindt een dubbele waarde in de array of niet . kopen van 2 Maak een lus te doorlopen uw array . Voeg de volgende lus overzichtsstructuur aan uw programma : for (int i = 1 ; i < myNums.length ; i + + ) { //proces inhoud hier } Deze lus wordt een keer herhalen voor elk element in uw numerieke array. In de lus , kunt u het controleproces te implementeren , het vergelijken van elk item op het vorige items in de structuur . Sla het huidige aantal waarde in een lokale variabele in je lus : . Int currNum = myNums [ i ] ; Deze waarde vertegenwoordigt het getal op de huidige positie wanneer de lus herhaalt 3 Maak een tweede lus in de eerste. Voeg de volgende lus schema nadat u de huidige waarde in de variabele op te slaan : for (int j = 0 ; j < i , j + + ) { //check vorige waarden } Binnen deze lus , kunt u de huidige waarde te vergelijken met die welke voorkomen in vroegere posities in de array . Op deze manier kunt u zien of de huidige waarde is dupliceren . Een 4 Vergelijk het huidige aantal van voorgaande waarden . In je tweede lus , voeg de volgende conditionele statement : if ( currNum == myNums [ j ] ) { //de waarde is een duplicaat } Als deze test een werkelijke waarde terug het betekent dat de huidige matrix element gelijk is aan een vorige , met de positie aangegeven door de tweede lus teller . Binnen de voorwaardelijke if statement , instrueren het programma wat te doen wanneer zij tegenkomt een duplicaat : dupNum = currNum ; dupPos = i break; De code stelt de waarden van de gedupliceerde aantal en zijn positie , zodat ze toegankelijk zal zijn wanneer de lus eindigt . Verder geen punt bestaat voor voortzetting van de lus in dit stadium , zodat de instructie break stopt het van verdere iteratie . 5 Breek uit de eerste lus . Het break statement breekt alleen uw code uit de dichtstbijzijnde lus . Dit betekent dat de buitenste lus ook zal blijven wanneer je de dubbele waarde hebben gevonden . Na de sluiting beugel voor de binnenkant lus , voeg de volgende conditionele statement : if ( dupNum > = 0 ) break ; Als het duplicaat is niet gevonden , de buitenste lus zal blijven uitvoeren . U kunt de volgende test- verklaring toevoegen nadat je buitenste lus sluit : System.out.println ( " Gedupliceerd nummer : " + dupNum + " , positie : " + dupPos ) ; Als uw code niet heeft zich een duplicaat , beide variabelen worden nog steeds opslaan van waarden van negatieve.
|