Gå til innhold

Bruke array i for-løkke


Anbefalte innlegg

Kan man istedet for int i = 0...... bruke en array av tall å gå gjennom i for løkka ?

 

feks at man har en array med tallene {1,2,3,5,8,13,21}, og vil bruke de istedet for 0 til 10 eller hva det nå er.

 

Jeg prøvde med

 


for (int array[i] = array[0]; array[i] <= array[i]; array[i++])

 

men det virket ikke..

 

Går det på en annen måte?

Lenke til kommentar
Videoannonse
Annonse

Det som er mulig er å bruke to arrays. Et som mapper fra i til x. Bare sørg for at maksimumsverdien i det ene arrayet er større enn eller like stort som størrelsen av det andre.

 

f.eks.

 

int idx[6] = {2, 0, 1, 3, 5, 4};
char str[6] = {'e', 'l', 'h' 'l', '\0', 'o'};

for(int i = 0; i < 6; i++) {
printf("%c", str[idx[i]]);
}

 

EDIT: Endret noen kodefeil :ermm:

Endret av hjahre
Lenke til kommentar

Eller noe sånt:

 

int[] intlist = {1,2,3,5,8,13,21};
for (int i : intlist) {
 System.out.println(i);
}

 

Hvis du vil slippe å opprette array'er utenfor løkka (hvis du kun kommer til å bruke den inne i løkka), kan du gjøre følgende:

 

public class Test {

 public static int[] intArray(int... ints) {
   return ints;
 }

 public static void main(String[] args) {
   for (int i : intArray(1,2,3,5,8,13,21)) {
     System.out.println(i);
   }
 }

}

Endret av jonny
Lenke til kommentar

Vet ikke hvorfor, men jeg tenkte C med en gang, dette er java og kan da gjøres enda lettere. Vet ikke helt hva du prøver å oppnå, men dette her er kanskje noe som gjør det du ønsker - bare lettere enn mitt forrige eksempel:

 

for (int i : myArray)
{
   // i være de ulike verdiene i arrayet.
   some_Function(i);
}

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