Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

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 av v3g4rd
Lenke til kommentar

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 av NevroMance
Lenke til kommentar

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

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
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...