Avatar billede circadian Nybegynder
15. januar 2010 - 16:40 Der er 8 kommentarer og
1 løsning

Gøre if-sætninger kortere

Hej,

Her er lidt kode:

  if totalfeeds = 1 then
    feed_total := feed[0]
  else if totalfeeds = 2 then
    feed_total := feed[0]+feed[1]
  else if totalfeeds = 3 then
    feed_total := feed[0]+feed[1]+feed[2];

Sådan fortsætter den indtil totalfeeds = 25.

Det bliver mildest talt ret grimt at kigge på, og ikke mindst fylder det utroligt meget.

Jeg vil gerne høre om det på en eller anden måde kan lade sig gøre at forkorte koden, evt. med en for/do sætning. Har prøvet, men kan ikke få det til at virke. Det er som om man ikke kan få lov til at lægge array-elementer sammen på anden vis.
Avatar billede erikjacobsen Ekspert
15. januar 2010 - 16:50 #1
if totalfeeds <= 25 then
begin
  feed_total=0;
  for i:=0 to totalfeeds-1 do
  begin
    feed_total:=feed_total+feed[i];
  end
end;

/* Sådan ca. */
Avatar billede circadian Nybegynder
15. januar 2010 - 17:00 #2
#1
Jeg lavede
  feed_total=0;
om til
  feed_total=''; // da det er en string

Det virker fint, mange tak!
Avatar billede Slettet bruger
16. januar 2010 - 16:21 #3
hvorfor ikke lave en case?
Avatar billede peterql Nybegynder
16. januar 2010 - 18:31 #4
I dette tilfælde ville en "case" ikke gøre det ret meget kønnere, løsningen med et loop er klart at foretrække.
Avatar billede Slettet bruger
16. januar 2010 - 18:54 #5
Næ måske ikke og dog.

En løkke kan gøre ting meget ulæselige. Hvor en case gør det meget mere overskueligt for en anden og compileren er ligeglad. Koden bliver stort set den samme.
Avatar billede erikjacobsen Ekspert
16. januar 2010 - 19:37 #6
Vis hvordan du vil gøre det med en case-sætning.
Avatar billede circadian Nybegynder
19. januar 2010 - 22:27 #7
#1 Du smider selvfølgelig bare et svar.
Avatar billede erikjacobsen Ekspert
19. januar 2010 - 23:03 #8
Jeg samler slet ikke på point, tak.
Avatar billede circadian Nybegynder
19. januar 2010 - 23:06 #9
Alright, takker.
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