Go Down

Topic: Programm mit Schalter und LED (Read 2 times) previous topic - next topic

lgrube96

Uwe hat natürlich da eine super Beschreibung abgeliefert.
Ach...wollt noch kurz was hinzufügen, diese Funktio mit einer while Schleife und do nennt man auch kopfgesteuerte Schleife/ Funktion! Den Rest hat Uwe ja dazu erläutert!

Rene_Merten

#26
Jan 14, 2013, 10:42 pm Last Edit: Jan 14, 2013, 10:53 pm by Rene_Merten Reason: 1

Quote
Nicht if, while macht mir schwierigkeiten

Dann sag es doch einfach.  8) 8)

"While" heißt "solange"

Solange die Bedingung hinter while wahr ist wird der Anweisungsblock durchgeführt.
Beispiel
while (a<5)
{
Anweisungen;
}
also solange die Variable a kleiner als 5 ist werden die "Anweisungen;" ausgeführt.

Sonderformen:
while(1) ist eine unendliche Schleife.

do while
Ist ähnlich wie While nur wird die Bedingung am Ende kontrolliert und somit die "Anweisungen;" mindestens 1 mal durchgeabeitet:

do{
Anweisungen;
} while (a<5)

In der while-Bedingung kann alles das stehen, was auch als Bedingung in einer if-Anweisung stehen kann.

Bei while gibt es kein else.

http://arduino.cc/en/Reference/While
http://arduino.cc/en/Reference/DoWhile

Grüße Uwe



Wo ist der gefällt mir Button.?

Der Uwe hat da ein Händchen für, sowas zu erklären.  ]:D

Und genau das mag ich an diesen Forum. Man bekommt es verständlich erklärt. Ich finde so eine Erklärung besser, als wenn mir jemand den passenden Code gibt, weil ich es so verstehe, was das bedeutet, und versuch es selbser umzusetzen.

blubb113

Da ihr gerade von Schleifen redet, könnte mir wer vielleicht den Unterschied erklären, beziehungsweise, wofür es denn gleich 3 Schleichen braucht? Ich mein, wofür while/do while, wenns auch for gibt(oder umgekehrt halt)

Ich weiss nicht warum, hatte früher immer Mühe mit dem while, dabei ist es noch simpler als for.

mkl0815

#28
Jan 16, 2013, 02:45 pm Last Edit: Jan 16, 2013, 02:47 pm by mkl0815 Reason: 1
FOR ist eine "zählende" Schleife mit einer in der Regel definierten Anzahl von Durchläufen bei der Du einen Zählindex verwendest der erhöht oder verringert wird bei jedem Durchlauf.

Code: [Select]

//zählt von 0 bis 9
for (int i=0;i<10;i++) {
 Serial.println(i,DEC);
}


WHILE ist eine "kopfgesteuerte" Schleife, die nur an eine (oder auch mehrere) Bedingung geknüpft ist, welche die Schleife steuern. Man verwendet diese Schleife wenn z.B. die Anzahl der Durchläufe nicht vorher klar ist.
Code: [Select]

while(Serial.available()) {
 int data = Serial.read();
 //mach irgendwas mit data
}


DO WHILE ist eine "nicht abweisende" Schleife, da der auszuführende Block zuerst steht, wird die Schleife IMMER mind. einmal durchlaufen, weil erst am Ende geprüft wird ob die Abbruchbedingung erfüllt ist. Im Gegensatz um WHILE, wo schon am Anfang geprüft wird und ggf. die Schleife gar nicht durchlaufen wird.

Code: [Select]

do {
Serial.println("Ich werde immer ausgegeben!!");
} while (false);

blubb113


FOR ist eine "zählende" Schleife mit einer in der Regel definierten Anzahl von Durchläufen bei der Du einen Zählindex verwendest der erhöht oder verringert wird bei jedem Durchlauf.

Code: [Select]

//zählt von 0 bis 9
for (int i=0;i<10;i++) {
 Serial.println(i,DEC);
}


WHILE ist eine "kopfgesteuerte" Schleife, die nur an eine (oder auch mehrere) Bedingung geknüpft ist, welche die Schleife steuern. Man verwendet diese Schleife wenn z.B. die Anzahl der Durchläufe nicht vorher klar ist.
Code: [Select]

while(Serial.available()) {
 int data = Serial.read();
 //mach irgendwas mit data
}


DO WHILE ist eine "nicht abweisende" Schleife, da der auszuführende Block zuerst steht, wird die Schleife IMMER mind. einmal durchlaufen, weil erst am Ende geprüft wird ob die Abbruchbedingung erfüllt ist. Im Gegensatz um WHILE, wo schon am Anfang geprüft wird und ggf. die Schleife gar nicht durchlaufen wird.

Code: [Select]

do {
Serial.println("Ich werde immer ausgegeben!!");
} while (false);



Ach so, vielen Dank für die Aufklärung  :)

Go Up