INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Verständnisfrage schleife
05.01.2019, 23:04 (Dieser Beitrag wurde zuletzt bearbeitet: 05.01.2019 23:06 von Rasa.)
Beitrag #1
Verständnisfrage schleife
habe folgende Aufgabe bekommen. Jetzt ist es ja wie folgt mal abgesehen dass im loop eine schleife ist die nichts bring da sie geloop ist . Warum gibt mir der Serielle Monitor

5,7,9 … aus es müsste doch 2,3,4... sein.

Ich würde die Schleife auch gerne nur einmal ablaufen lassen, wie funktioniert dies ?

Code:
int a=0;
int b=2;

void setup(){
int c=1;
b=b*a+3;
Serial.begin(9600);
}

void loop(){
for (a=0;a<2;a++){
b++;
}
Serial.println(b);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2019, 23:27
Beitrag #2
RE: Verständnisfrage schleife
Nimm mal einen Zettel und einen Stift und schreibe die Werte von a und b und deren Änderungen auf.
Die werden auch im setup schon mit festgelegt.
Informiere Dich auch über b++ (im Gegensatz zu ++b).

Wenn Du den Loop nur einmal durchlaufen willst, dann musst Du einen Zähler mitführen. Danach ist bis zum Reboot nix mehr. Ist es das, ws Du willst?

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2019, 23:31
Beitrag #3
RE: Verständnisfrage schleife
Nach meinem Verständnis müsste er mit 3 beginnen (2*0+3) und dann weiter 4,5,6 weiter ausgeben.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2019, 23:41
Beitrag #4
RE: Verständnisfrage schleife
(05.01.2019 23:31)Sugar schrieb:  Nach meinem Verständnis müsste er mit 3 beginnen (2*0+3) und dann weiter 4,5,6 weiter ausgeben.
Nö. Das Programm sagt etwas anderes.

b=b*a+3; --> b = 2 * 0 + 3 = 3

for (a=0;a<2;a++){
b++;
}
--> b= 4, 5 im For

danach Ausgabe 5 im ersten Loop, danach 7, 9, (immer 2 mehr)

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2019, 23:45
Beitrag #5
RE: Verständnisfrage schleife
(05.01.2019 23:31)Sugar schrieb:  Nach meinem Verständnis müsste er mit 3 beginnen (2*0+3) und dann weiter 4,5,6 weiter ausgeben.
void setup wird einmal ausgeführt da hast recht. also 3, 4 , 5 wenn der loop nicht wäre richtig und nur die schleife . wegen void loop geht es ja weiter bis unendlich. aber warum gibt mir der serielle monitor was anderes raus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 00:18
Beitrag #6
RE: Verständnisfrage schleife
Tommy56 schrieb:danach Ausgabe 5 im ersten Loop, danach 7, 9, (immer 2 mehr)
Warum 2 mehr? Es gibt immer nur ein b++, also ein mehr.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 10:29 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2019 11:39 von Rasa.)
Beitrag #7
RE: Verständnisfrage schleife
(05.01.2019 23:41)Tommy56 schrieb:  
(05.01.2019 23:31)Sugar schrieb:  Nach meinem Verständnis müsste er mit 3 beginnen (2*0+3) und dann weiter 4,5,6 weiter ausgeben.
Nö. Das Programm sagt etwas anderes.

b=b*a+3; --> b = 2 * 0 + 3 = 3

for (a=0;a<2;a++){
b++;
}
--> b= 4, 5 im For

danach Ausgabe 5 im ersten Loop, danach 7, 9, (immer 2 mehr)

Gruß Tommy

1 erster durchlauf b = 2 .
2 im Setup lauft b=b*A+3 = 3 (Setup wird doch nur einmal ausgeführt oder?)
3 gibt die 3 an int b zurück
4 jetzt kommt der loop b++ also b= 4
5 erste schleifendrurchlauf gibt 4 aus

6 scheife zählt b noch einmal hoch (b++) gibt also 5 aus

ausgabe 4,5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.01.2019, 11:52 (Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2019 11:53 von Tommy56.)
Beitrag #8
RE: Verständnisfrage schleife
(06.01.2019 00:18)Sugar schrieb:  
Tommy56 schrieb:danach Ausgabe 5 im ersten Loop, danach 7, 9, (immer 2 mehr)
Warum 2 mehr? Es gibt immer nur ein b++, also ein mehr.
Du ignorierst die for-Schleife.

Gruß Tommy

(06.01.2019 10:29)Rasa schrieb:  ausgabe 4,5
Wie Du im seriellen Monitor gesehen hast, gibt er zuerst 5, dann 7,9,... aus.
Warum habe ich Dir erklärt. Wenn Du meinst, es besser zu wissen, ...

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Berücksichtigung des A0-Einganges in if-Schleife Joergi-1911 3 215 17.02.2019 16:33
Letzter Beitrag: Tommy56
  Schleife (Durchlauf) abbrechen wann ich es will EXCLUZIVE 11 648 22.01.2019 15:52
Letzter Beitrag: Vapalus
Wink for Schleife im Void setup() Rockman 12 659 20.01.2019 15:17
Letzter Beitrag: Arduinero
  Schleife in der Schleife nanoheld 2 234 06.01.2019 17:08
Letzter Beitrag: Fips
Question [Anfänger] Verständnisfrage Codeschnipsel MisterE 13 790 31.12.2018 10:05
Letzter Beitrag: MicroBahner
  Anfänger hängt in der Schleife mt14516 2 476 24.09.2018 20:54
Letzter Beitrag: MicroBahner
  Schleife bei Zeit x abbrechen BitsAndBytes 7 874 23.09.2018 00:30
Letzter Beitrag: BitsAndBytes
  Schleife per Tastendruck unterbrechen und andere Schleife starten Thor Wallhall 13 1.533 19.07.2018 21:50
Letzter Beitrag: Thor Wallhall
  Unverständnis bei FOR-Schleife Telefonmann 3 775 22.02.2018 14:29
Letzter Beitrag: Telefonmann
  Verständnisfrage zu RTClib und speziell: rtc.ajust Karli 13 1.787 15.02.2018 18:50
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste