Wert einer Variable für mehrere Loopdurchläufe nicht zurücksetzen

Hallo Community,

ich möchte eine Schleife nur beim ersten Durchlauf des Loops ausführen lassen.
Ähnliche Probleme löse ich sonst mit hilfe von "for" und einer Variable, die ich dann hochsetze um ihn aus der "for"-Schleife rausspringen zu lassen.

Allerdings ist mir jetzt aufgefallen, dass variablen beim "neustart" einer Loop zurückgesetzt werden.
Wenn ich aber die Variable ganz am Anfang in der Loop hochsetze, wird die "for"-Schleife auch beim ersten Mal nicht ausgeführt.

Wie kann ich also dafür sorgen, dass beispielsweise ein "c+1;" am Ende einer Loop beim zweiten(dritten/vierten/...) Durchlauf jedes mal wieder zurückgesetzt wird?

Ich freue mich über jede Hilfe1 :slight_smile:

MFG,
MrDouchebag

Lokale Variablen existieren nur innerhalb der Funktion oder innerhalb eines Scope Blocks. Ganz normal.

Ansonsten globale Variablen verwenden oder eine lokale Variable als static deklarieren. Dann behalten sie ihren Wert über mehrere Durchläufe

Du könntest auch eine Bedingung schaffen, die sich nach dem ersten Durchlauf ändert und dann nach x Durchläufen wieder zurück geändert wird.
Dann wird dein Zähler aufaddiert, die Bedingung geändert wieder x Durchläufe gewartet usw...

Grob umrissen :

Setup()
y=10


Loop()
Wenn y >=10 -> s1 an 

Wenn s1 an -> x++
s1 aus
y=0

y++

Gruß

schUk0

ich mach sowas meist so:

funktion(){
  static bool Init = true;

  if (Init){
    // das tun, was einmal beim ersten Aufruf getan werden soll
    Init = false;
  }
  // rest der Funktion
}

Wenn es aber etwas ist, dass nur einmal beim Start des Arduino ausgeführt werden soll, kann man es einfach in die Setup() schreiben.

MrDouchebag:
ich möchte eine Schleife nur beim ersten Durchlauf des Loops ausführen lassen.

Ich schreibe alles was nur einmal "zu Beginn" ausgeführt werden soll ins setup()
Oder ist das eine zu einfache Lösung? :slight_smile: :slight_smile:

Vielen Dank!,

ich habe das ganze jetzt einfach ins Setup geschrieben.
Problem gelöst:)

VG,
MrDouchebag

Super, dass es eine einfache Lösung gab
und danke für die Rückmeldung!