Avatar billede klikkomania Nybegynder
28. maj 2006 - 17:12 Der er 4 kommentarer

Brug af while og for løkker i alm. c

HEJ:-)
Er der nogen der vil hjælpe mig? Det drejer sig om alm c programmering!
Opgaven lyder:
"Write a program that reads an integer value for n and then sums the integers from n to 2 * n if n is nonnegative, or from 2 * n to n if n is negative. Write the code in two versions: one using only for loops and the other only using while loops."
Er der evt nogen der kan opstille dem begge for mig? Og hvad er forskellen, de er jo begge til gentagelsespræget aktivitet i programmet, men hvor ligger forskellen i while og for. Hvis der er en der er hjælpsom og vil svare, må man meget gerne opstille dem begge som de vil stå når man skriver dem ind i programmerings programmet. Mange tak for hjælpen på forhånd.
Avatar billede Slettet bruger
28. maj 2006 - 17:50 #1
sådan noget som nedenstående (kan nok gøres anderledes) Pointen er bare at en for løkke er en lettere måde at skrive en while. Læg mærke til at der i while eksemplet er en initialisering af en tæller variable i og en betingelse samt en optælling af i. Det samme er der i for eksemplet <initialisering>;<betingelse>;<optælling>

int n = <some value you get>;
int start = (0 > n) ? 2 * n : n;
int end = (0 > n) ? n : 2 * n;
int sum = 0;

for(int i = start; start <= end; i++) {
  sum += i;
}


int i = start;
while(start <= end) {
  sum += i;
  i++;
}
Avatar billede driis Nybegynder
28. maj 2006 - 17:54 #2
while og for er lidt 2 sider af samme sag. De eksekverer begge en løkke, så længe et statement er sandt.

"for" giver dig lidt mere end while, idet du her kan få udført noget for hvert gennemløb af løkken (typisk en inkrementering af en tæller), samt få en variabel initialiseret som tæller.

Følgende stumper udfører nøjagtig det samme:

int i = 0;
while( i < 10 )
{
  printf("Loop %d",i);
  i++;
}
-------------------------------
for( int i = 0 ; i < 10 ; i++ )
{
  printf("Loop %d",i);
}
Avatar billede jpk Nybegynder
28. maj 2006 - 18:32 #3
En lille rettelse til kryptos' kode:

while(start <= end)

skal være:

while(i <= end)
Avatar billede arne_v Ekspert
28. maj 2006 - 19:03 #4
og hvis det skal være C så skal alle erklæringerne op i toppen
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
Kurser inden for grundlæggende programmering

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