jemartinsen81 Skrevet 24. oktober 2007 Del Skrevet 24. oktober 2007 Dersom man lager en array (int[50]), legger inn diverse verdier i denne, og deretter vil at programmet skal søke gjennom arrayen og finne den første cellen som har verdien "0", hvordan setter man det opp? Lenke til kommentar
v3g4rd Skrevet 24. oktober 2007 Del Skrevet 24. oktober 2007 (endret) Jeg har litt problemer med SDKen min for øyeblikket, så jeg kan dessverre ikke vise deg noe eksempel, men jeg ville værtfall brukt en for each løkke. Du kan lese mer om dem her. edit: Kan forresten prøve å skrive en kodesnutt, men ikke skyt meg dersom den ikke virker public class foreach_test { public static void main(String[] args) { int[] mittArray = {2,3,6,8,23,54,12,32,65,455,23,98,0,232,12,3,4,54}; int teller = 1; boolean funnet = false; for (int verdi : mittArray) { if (verdi == 0) { funnet = true; break; } teller ++; } if (funnet) { System.out.println("Verdien 0 ble funnet på posisjon " + teller + " i arrayet."); } } } Endret 24. oktober 2007 av v3g4rd Lenke til kommentar
NevroMance Skrevet 24. oktober 2007 Del Skrevet 24. oktober 2007 (endret) Eventuelt bare lage en while løkke. class Test { public static void main(String[] args) { int[] array = new int[50]; \\Legge til verdier her boolean found = false; int i = 0; while(!found && i < array.length) { if(array[i] == 0) found = true; else i++; } if(found) System.out.println("Det finnes en 0 i posisjon " + i); } } EDIT: La til noen tester Endret 24. oktober 2007 av NevroMance Lenke til kommentar
___ Skrevet 24. oktober 2007 Del Skrevet 24. oktober 2007 While-løkka di fortsetter til arrayet er slutt, selv om det er treff tidlig i arrayet. Har man funnet det man er ute etter, bør man bryte ut av while-løkka: public class Test { public static void main(String[] args) { int[] array = new int[50]; for (int i = 0; i < array.length; i++) { array[i] = 2; } array[23] = 0; boolean found = false; int i = 0; while (i < array.length) { if (array[i] == 0) { found = true; break; } else { i++; } } if (found) System.out.println("Det finnes en 0 i posisjon " + i); } } Hilsen Werner Lenke til kommentar
NevroMance Skrevet 24. oktober 2007 Del Skrevet 24. oktober 2007 Nei. while-løkka stopper så fort den finner array == 0. Da setter den found = true, mens kravet for at den skal fortsette while-løkka er !found (found == false) && i < array.length(). Siden !found blir false vil ikke uttrykket (!found && i < array.length()) være true lenger, og den hopper da elegant ut av while-løkka. Lenke til kommentar
___ Skrevet 24. oktober 2007 Del Skrevet 24. oktober 2007 Nei. while-løkka stopper så fort den finner array == 0. Da setter den found = true, mens kravet for at den skal fortsette while-løkka er !found (found == false) && i < array.length(). Siden !found blir false vil ikke uttrykket (!found && i < array.length()) være true lenger, og den hopper da elegant ut av while-løkka. Sorry, så ikke at du hadde !found i while-conditionet... Werner Lenke til kommentar
jemartinsen81 Skrevet 25. oktober 2007 Forfatter Del Skrevet 25. oktober 2007 Takk skal dere ha, while-løkken fungerte flott ja. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå