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
  for Schleife behindert teilweise Ablauf rev.antun 5 112 23.11.2020 14:43
Letzter Beitrag: rev.antun
  Arduino- Code-Verständnisfrage mat-sche 4 343 01.11.2020 20:29
Letzter Beitrag: Tommy56
  Verständnisfrage 2D Array hugofant 2 272 06.10.2020 07:35
Letzter Beitrag: hugofant
  While Schleife FoxFactoy 8 925 01.08.2020 14:58
Letzter Beitrag: Tommy56
  Verständnisfrage: Arduino Hardwaremanagement für Bibliotheken rick00 17 1.667 09.07.2020 23:57
Letzter Beitrag: rick00
  millis Schleife bleibt hängen Cubicany 10 1.239 28.06.2020 18:39
Letzter Beitrag: Tommy56
  for-schleife, delay, millis, interrupt Harry 8 1.238 31.03.2020 21:02
Letzter Beitrag: Harry
  int variable wird nicht in Schleife übertragen ha0248 8 1.290 11.02.2020 15:25
Letzter Beitrag: ha0248
  Verständnisfrage zu RTClib und speziell: rtc.ajust Karli 17 5.019 15.01.2020 14:54
Letzter Beitrag: Tommy56
  Schleife nur 1x durchlaufen ohne for... Hanibal_Smith 3 1.101 01.10.2019 19:44
Letzter Beitrag: Tommy56

Gehe zu:


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