Avatar billede chris09 Novice
04. juni 2017 - 19:59 Der er 7 kommentarer

nested if statement i while loop

Hej

Kan man godt neste en if betingelse inde i en while loop? På samme måde som man kan neste en if i en for loop?
Har forsøgt at søge mig frem til et svar, men synes ikke, at jeg kan finde et entydigt svar..

Tak! :)

Mvh.
Avatar billede softspot Forsker
04. juni 2017 - 20:09 #1
Ja, det kan man godt. Var det ikke hurtigere bare at prøve det? :)
Avatar billede softspot Forsker
04. juni 2017 - 20:10 #2
Med mindre du tænker på den konstruktion som for-løkken har inden i parantesen, for i så fald kan du ikke. Det er en speciel konstruktion som gælder for-løkken.
Avatar billede chris09 Novice
04. juni 2017 - 21:33 #3
Jeg er helt nyt til programmering og JavaScript, så nej, desværre ikke hurtigere at prøve ;)

Yes, er godt med på, at det kun er betingelsen, som skal stå i parentesen og initialiseringen skal skrives inden. Og eftertanken inde i koden blokken, ik? :)

Det her et et udpluk af min kode, som bl.a. skal løbe alle billedfiler igennem, for endeligt at tilføje dem til et array, hvis de er png eller jpg (ved ikke om det giver mening):

var i = 0;   
while ( i > files.length) {   
      if (!(files[i].endsWith(".png") || files[i].endsWith(".jpg"))) continue;
      i++;       
      imgs.push(files[i]);
};

Havde i første omgang lavet den med en for løkke, men ville forsøge at lave den med en while løkke. Men ja, det er denne if statement - og om det kan lade sig gøre?
Avatar billede jakobdo Ekspert
04. juni 2017 - 21:37 #4
Du kan sagtens lave if/else og i flere niveauer inde i en løkke.
Så prøv...
Avatar billede softspot Forsker
04. juni 2017 - 21:56 #5
Det koster utroligt lidt tid, at teste simple ting i javascript og du spørger om en konstruktion, som er ret basal.

En test der svarer på dit spørgsmål kunne se således ud:

var i = 0;
while(i < 10) {
  if(i < 5) {
    document.write("i er mindre end 5");
  }
  i++:
}
document.write("i er " + i);

Hvis dette kører, så er svaret på dit spørgsmål ja.

Dit eksempel inddrager andre faktorer, som komplicerer tingene og sløre svaret på dit spørgsmål. Det er altid en god idé at skære ind til benet, hvis du skal teste om noget fungerer eller ikke fungerer.
Avatar billede chris09 Novice
04. juni 2017 - 22:09 #6
Tak for dit svar.

Det er nu blevet testet og det virker - så det kan du have ret i :)

Og ja, ved godt eksemplet er kompliceret og er en del af en større opgave. Men tak for input!
Avatar billede softspot Forsker
04. juni 2017 - 22:17 #7
Velbekomme :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester