Avatar billede Far Nybegynder
04. november 2010 - 10:13 Der er 8 kommentarer og
1 løsning

Simpel PHP løkker og operatorer

Har en opgave som jeg bøvler lidt med. Den lyder følgende:

a) lav en variabel der hedder $maks og sæt den lig 10
b) lav en variabel der hedder $i og sæt den lig 1
c) lav en variabel der hedder $sum og sæt den lig 0
d) lav en while-løkke der kører så længe at $i er mindre end $maks
e) i kroppen på while-løkken skal $sum sættes lig $sum+$i
f) i kroppen på while-løkken, læg en til $i
g) når while-løkken er kørt til ende, udskrives $sum på skærmen

Har lavet den sådan her indtil videre.

<html>
<?php
$maks = 10;
$i = 1;
$sum = 0;
while ($i <= $maks)
{
$sum= $sum+$i;
$i++;
}
echo $sum . '<br>';
?>
</html>

Laver garanteret rigtigt mange fejl, men hjælp modtages gerne.
Avatar billede The_Buzz Novice
04. november 2010 - 10:17 #1
Der er mange måder at lave den type løkker på - jeg vælger oftest for:
http://php.net/manual/en/control-structures.for.php

<html>
<?php
$maks = 10;
$sum = 0;

for ($i = 1; $i <= $maks; $i++) {
    $sum = $sum+$i;
echo $sum.'<br>';
}
echo 'Slut sum = '.$sum;
?>
</html>
Avatar billede webweaver Praktikant
04. november 2010 - 10:20 #2
<?php
$maks = 10;
$i = 1;
$sum = 0;
while ($i <= $maks)
{
$sum++;
$i++;
}
echo $sum . '<br>';
?>
Avatar billede Far Nybegynder
04. november 2010 - 10:20 #3
De næste opgaver er at lave samme opgave med "do-while" og "for" - hvad er forskellen på de 3?
Avatar billede webweaver Praktikant
04. november 2010 - 10:25 #4
Men hvad er problemet egentlig? Du har jo selv et script der virker.. Så hvad ønsker du at opnå? Er 55 som dit script smider ud, forkert eller?
Avatar billede webweaver Praktikant
04. november 2010 - 10:27 #5
Do før while bruges til at udføre en kommando 1 gang før en while løkke.

Og for bruger man til at udføre en kommando et bestemt antal gange.
Avatar billede Far Nybegynder
04. november 2010 - 10:28 #6
Ingen problemer.
Det er bare nogle opgaver jeg har omkring php-programmering som jeg er igang med at lære
Avatar billede repox Seniormester
04. november 2010 - 11:27 #7
#5
Din udlægning er ikke korrekt.

Din do-while løkke er stadig en løkke, selvom at din while evaluering ikke er sand. Med en do-while løkke, vil du derfor altid gennemtvinge mindst en iterering, mens med en while løkke vil en iterering kun gennemføres hvis while evalueringen er sand.

for() er stadig en løkke - det er ikke noget du bruger til at 'udføre en kommando et bestemt antal gange'. Det er en vildledende besked at give, i forhold til at bare betegne det for hvad det er; en løkke.

for(), foreach(), while(), do{...}while() er bare løkker som giver nogle forskellige metoder at opnå (stort set) det samme.
Avatar billede webweaver Praktikant
04. november 2010 - 17:24 #8
Tror godt at han er klar over at det er løkker der snakkes om, eftersom det er nævnt tidligere i tråden repox :)

Ofte vil du bruge en for() løkke til at udføre en ting et vist antal gange. Hvis noget skal udføres flere gange efter hinanden, er det en gentagelse, ergo en løkke. Det er sådan set bare det jeg skriver :-)
Det er da rigtigt at det ikke er en "decideret funktion som udfører en kommando x antal gange". Det kan den bruges til at være.

Hvis jeg bare skriver for() er en løkke, så tror jeg ikke rigtig han får så meget ud af det faktisk :)
Avatar billede repox Seniormester
04. november 2010 - 18:35 #9
#8
Du opbygger en sprogbarriere ved at bagatellisere mine pointer.
Du kan ikke ændre det faktum du i #5 beskriver to løkker som seperat anvendelige, og understreger i #8 min pointe om at dine udtalelser er misvisende.

Du udtaler at man 'ofte bruger en for() løkke til at udføre en ting et vist antal gange' - hvordan adskiller for() løkken i den udtalelse sig fra foreach(), while() og do-while løkker? Eller med andre ord: hvad er forskellen på en løkke og en løkke?

Det har ingen relevans hvad du, jeg eller andre bruger en bestemt type løkke til, men det er det du giver udtryk for.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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