WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 13.04.2008, 14:15   #1
le bart
Veteran
 
Registriert seit: 07.11.2003
Alter: 50
Beiträge: 393


Standard warum zählt diese schleife schlecht?

in einer schleife die so oft durchlaufen wird wie einträge im dir sind will ich die farben alternieren, aber das muster das erzeugt wird ist: 12313123..

$zaehler=0;
<anfang schleife>

$zaehler=$zaehler+1;
if ($zaehler==1){$colour='rot';}
if ($zaehler==2){$colour='green';}
if ($zaehler==3){$colour='blue';}

<anfang textausgabe in farbe $colour>

if ($zaehler==3){$zaehler=0;}



<ende schleife>


danke!
le bart ist offline   Mit Zitat antworten
Alt 13.04.2008, 15:28   #2
zAPPEL
Inventar
 
Registriert seit: 07.11.2001
Ort: Perchtoldsdorf
Alter: 45
Beiträge: 2.085

Mein Computer

Standard

Kannst du den ganzen Code posten? Also was steht z.B. in <Anfang Schleife> ? In PHP?

Hier mal ein PHP-Code der das machen sollte was du willst:
PHP-Code:
$i=0;
$j=0;
while(
$j<100) {
    
$i++;
    echo 
$i;
    if (
$i ==3)
        
$i=0;
    
$j++;

Ausgabe:
Code:
1231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231231
lg
____________________________________
„Das menschliche Gehirn ist eine großartige Sache.
Es funktioniert vom Moment der Geburt an – bis zu
dem Zeitpunkt, wo du aufstehst, um eine Rede zu halten.“ Mark Twain

"Windle shook his head sadly. Four exclamation marks, the sure sign of an insane mind" Reaper Man, Terry Pratchett

Geändert von zAPPEL (13.04.2008 um 15:33 Uhr).
zAPPEL ist offline   Mit Zitat antworten
Alt 13.04.2008, 15:38   #3
pong
Inventar
 
Benutzerbild von pong
 
Registriert seit: 25.12.2000
Alter: 41
Beiträge: 9.063

Mein Computer

pong eine Nachricht über ICQ schicken
Standard

1. auch PHP kennt eine Mehrfachauswahl ... denn 3x if von denen je Durchlauf garantiert 2 NOK sind, lässt vermuten, dass es sich hier um einen absoluten Anfänger handelt?
2. Wo ist da eine Schleife?
3. dein ausgegebenes "Muster" wäre "123123...."
4. den Anweisungsblock des 4ten If setzt man in den then Zweig des 3tens rein
5. auch hier gibt es den CODE Tag

pong
____________________________________
\"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug

Nicht klicken!


Erstposteralarm/Beschwerde/Kummerkasten


Verplattet
pong ist offline   Mit Zitat antworten
Alt 13.04.2008, 17:29   #4
Satan_666
Inventar
 
Registriert seit: 03.09.2000
Beiträge: 4.010


Standard

Zitat:
Zitat von le bart Beitrag anzeigen
in einer schleife die so oft durchlaufen wird wie einträge im dir sind will ich die farben alternieren, aber das muster das erzeugt wird ist: 12313123..

$zaehler=0;
<anfang schleife>

$zaehler=$zaehler+1;
if ($zaehler==1){$colour='rot';}
if ($zaehler==2){$colour='green';}
if ($zaehler==3){$colour='blue';}

<anfang textausgabe in farbe $colour>

if ($zaehler==3){$zaehler=0;}



<ende schleife>


danke!
Was glaubst Du, macht die rot definierte Zeile?

*grübel*
____________________________________
Für ein friedliches Zusammenleben im Forum werde ich ab sofort keine Trolle mehr füttern, und zwar unabhängig von der Sinnhaftigkeit ihrer Wortmeldungen.
Satan_666 ist offline   Mit Zitat antworten
Alt 13.04.2008, 18:03   #5
zAPPEL
Inventar
 
Registriert seit: 07.11.2001
Ort: Perchtoldsdorf
Alter: 45
Beiträge: 2.085

Mein Computer

Standard

Geht natürlich noch einfacher mit Modulo (wobei die 100 natürlich mit der Gesamtanzahl deiner Datensätze ersetzt werden muss)
PHP-Code:
$i 0;
while (
$i 100) {
        
$j $i%3;
        echo 
$j;
        
// Gibt 012012012 etc. aus
        // Hier entsprechend weitermachen mit z.B. switch($j)
        
$i++;

bzw. dann auch mit einer for-Schleife:
PHP-Code:
for ($i=0;$i<100;$i++) {
        
$j $i%3;
        echo 
$j;

Wenn du jetzt die Farben nicht direkt mit PHP ausgibts sondern z.B. nur eine CSS-Klasse ausgibts brauchst auch gar keine IF-Abfrage mehr in der Schleife für die Farbe sondern könntest es so machen:
PHP-Code:
echo "<tr class='row-$j'>...</tr>"
Und im CSS definierst du die Hintergrundfarben für .row-1, .row-2 und .row-3

lg
____________________________________
„Das menschliche Gehirn ist eine großartige Sache.
Es funktioniert vom Moment der Geburt an – bis zu
dem Zeitpunkt, wo du aufstehst, um eine Rede zu halten.“ Mark Twain

"Windle shook his head sadly. Four exclamation marks, the sure sign of an insane mind" Reaper Man, Terry Pratchett
zAPPEL ist offline   Mit Zitat antworten
Alt 13.04.2008, 19:28   #6
le bart
Veteran
 
Registriert seit: 07.11.2003
Alter: 50
Beiträge: 393


Standard

Zitat:
Zitat von Satan_666 Beitrag anzeigen
Was glaubst Du, macht die rot definierte Zeile?

*grübel*

auf 0 setzen, damits wieder 1 wird bei nächsten durchlauf ?

ich hab das so gemacht, weil ich keine weitere schleife hinenipacken wollt, also hier is der ganze code, ich check nicht wo der fehler is:

Code:
<html>
<link rel="shortcut icon" href="favicon.ico" type="image/vnd.microsoft.icon" />
<link rel="icon" href="favicon.ico" type="image/vnd.microsoft.icon" />
<head>
<link rel="stylesheet" type="text/css" href="css.css">
<title>
Index of /
</title>
</head>
<body>


<?php
// open the current directory by opendir
$handle=opendir(".");
$zaehler=0;
while (($file = readdir($handle))!==false) {

$zaehler=$zaehler+1;
if ($zaehler==1){$colour='rot';}
if ($zaehler==2){$colour='green';}
if ($zaehler==3){$colour='blue';}



if ($file !=='files' && $file !=='private' && $file !=='mail' && $file !=='sommer2008'){
echo '<p><a class="'.$colour.'" href="'.$file.'"> </a>';
echo '<a href="'.$file.'">'.$file.'</a>';
}


if ($zaehler==3){$zaehler=0;}




}

closedir($handle);
?>



</table>
</body>
</html>
danke für die anregungen, werds probieren. und ja, ich bin der völlige programmier-noob
le bart ist offline   Mit Zitat antworten
Alt 13.04.2008, 19:48   #7
le bart
Veteran
 
Registriert seit: 07.11.2003
Alter: 50
Beiträge: 393


Standard

ich hab jetzt ein echo $zaehler reingetan und bin draufgekommen, das problem is nicht dass er falsch zählt, sondern dass er bei zweiten durchgang und bei jedem übernächsten bei 2 und 3 keine farbe zugeordnet..

Code:
<head>
<link rel="stylesheet" type="text/css" href="css.css">
<title>
Index of /
</title>
</head>
<body>


<?php
// open the current directory by opendir
$handle=opendir(".");
$zaehler=0;
while (($file = readdir($handle))!==false) {

$zaehler++;
echo '<br><br>'.$zaehler.'<br><br>';
if ($zaehler==1){
$colour='rot';
} elseif ($zaehler==2){
$colour='green';
} else {
$colour='blue';
$zaehler=0;
}


if ($file !=='files' && $file !=='private' && $file !=='mail' && $file !=='sommer2008'){
echo '<p><a class="'.$colour.'" href="'.$file.'"> </a>';

echo '<a href="'.$file.'">'.$file.'</a>';
}





}

closedir($handle);
?>



</table>
</body>
</html>
le bart ist offline   Mit Zitat antworten
Alt 13.04.2008, 19:56   #8
le bart
Veteran
 
Registriert seit: 07.11.2003
Alter: 50
Beiträge: 393


Standard

ah, ich bin so dämlich, das wo er keine farbe zuordnet sind die ausnahmen in der "if ($file.." schleife, mannomann, sorry und thx für die tipps

so funkts natürlich

Code:
<head>
<link rel="stylesheet" type="text/css" href="css.css">
<title>
Index of /
</title>
</head>
<body>


<?php
$zaehler=0;
// open the current directory by opendir
$handle=opendir(".");
while (($file = readdir($handle))!==false) {


if ($file !=='files' && $file !=='private' && $file !=='mail' && $file !=='sommer2008'){
$zaehler++;
#echo '<br><br>'.$zaehler.'<br><br>';
if ($zaehler==1){
$colour='rot';
} elseif ($zaehler==2){
$colour='green';
} else {
$colour='blue';
$zaehler=0;
}


echo '<p><a class="'.$colour.'" href="'.$file.'"> </a>';

echo '<a href="'.$file.'">'.$file.'</a>';
}





}

closedir($handle);
?>



</table>
</body>
le bart ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:48 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag