Avatar billede mccookie Seniormester
07. marts 2007 - 14:55 Der er 8 kommentarer og
1 løsning

While og switch

$max = 5;
$i = 0;
settype($avg_deltagerbrev_kar, float);
settype($min_deltagerbrev_kar, float);
settype($max_deltagerbrev_kar, float);
settype($i, float);
settype($max, float);

while($i <= $max) {

    switch($i)
    {

        case $i == $min_deltagerbrev_kar:
            echo "<img src=\"black.gif\">";
            echo $min_deltagerbrev_kar;
        break;
           
        default:
            echo "<img src=\"green.gif\">";
        break;
   
   
    }
   
    $i = $i + 0.01;

}


Jeg har ovenstående kode..... min_deltagerbrev_kar = 2; og sat til float.

Men hvorfor får den lov til at smutte igennem min switch som det første og ikke først når den har talt til 2?
Avatar billede coderdk Praktikant
07. marts 2007 - 15:56 #1
Syntaksen er:

switch ( $i )
{
  case $min_deltagerbrev_kar:
      echo "<img src=\"black.gif\">";
      echo $min_deltagerbrev_kar;
      break;
  default:
      echo "<img src=\"green.gif\">";
      break;
}
Avatar billede mccookie Seniormester
07. marts 2007 - 16:12 #2
Hmm.... syntes helt bestemt engang at have læst at man kunne lave en case $i < $i: gør det! osv.

While løkken kører bare switchløkken indtil den har talt til 5
Avatar billede olebole Juniormester
07. marts 2007 - 16:15 #3
<ole>

Mon ikke, du mener noget à la:

while($i <= $max) {

    switch(true)
    {

        case $i == $min_deltagerbrev_kar:
            echo "<img src=\"black.gif\">";
            echo $min_deltagerbrev_kar;
        break;
           
        default:
            echo "<img src=\"green.gif\">";
        break;
   
   
    }
   
    $i = $i + 0.01;

}

/mvh
</bole>
Avatar billede coderdk Praktikant
07. marts 2007 - 16:17 #4
Mnæeh, switch tager en variabel eller expression, case er så hvad den skal sammenligne med (lig eller ikke lig) - Jeg tror ikke jeg lige forstår hvad du vil :)
Avatar billede coderdk Praktikant
07. marts 2007 - 16:19 #5
Hmm jo, en case kan jo godt være en expression der evaluerer til en simpel type - ved ikke lige hvad jeg tænkte på :P
Avatar billede mccookie Seniormester
07. marts 2007 - 16:27 #6
Hmm.... olebole>>

Den vil ikke rigtigt skrive en sort streng ud når $i == $deltagerbrev_kar ==> 2 == 2

Hmm...

Og der er data i den var
Avatar billede olebole Juniormester
07. marts 2007 - 16:45 #7
Hmmm ... sidder ikke lige med en Apache kørende, så jeg kan desværre ikke teste, hvorfor  :o|
Avatar billede mccookie Seniormester
07. marts 2007 - 17:55 #8
Nu har jeg prøvet at lave noget basic på den:

min = 2
avg = 2.67
max = 3

$min = $min_deltagerbrev_kar;
$avg = $avg_deltagerbrev_kar;
$max = $max_deltagerbrev_kar;

while($i <= $m) {

if($i == 0) { echo $i . "<img src=\"black.gif\">"; }

elseif($i < $min) { echo "<img src=\"green.gif\">"; }

elseif($i == $min) { echo "<img src=\"black.gif\">"; }
   

$i = $i+ 0.01;
    }

Kan det være noget med taltypen at gøre?

Prøvede med 3 heltal og så virker det......forstår ikke helt!!
Avatar billede mccookie Seniormester
01. november 2007 - 00:20 #9
Virker stadig ikke, lukker
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