Gå til innhold

Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Skrevet (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 av v3g4rd
Skrevet (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 av NevroMance
Skrevet

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

Skrevet

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.

Skrevet
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

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