Robert schrieb:
> ich würde gerne in meinem C Program bei einem Einsprung in eine
> while-Schleife einen Teil gerne nur einmal machen. Was ist hiefür die
> eleganteste Lösung?
Da man nicht "in eine Schleife springt", sondern eher bei der
Programmausführung die Schleife erreicht, ist es ganz einfach:
man zieht diesen Code aus der Schleife heraus und davor. Dann
wird er vor dem Erreichen der Schleife genau einmal ausgeführt.
Robert schrieb:
> Vor der while-Schleife mache ich das auch. Ich habe aber die Möglichkeit
> in der while-Schleife die Regelung an- und wieder auszuschalten.
Wenn du die Regelung innerhalb der Schleife (mehrfach) an- und
ausschalten können willst, dann mußt du auch den else-Teil
mehrfach durchlaufen. Allerdings ist dann deine Programmlogik
fehlerhaft. Du hast jetzt nur 1 Bit: Regelung an oder aus.
Was du anscheinend willst, ist beim Wechsel von "an" zu "aus"
einen bestimmten Codeabschnitt einmalig auszuführen. Dann gehört
der aber nicht einfach in einen else Zweig, sondern du solltest
ein separates if dafür verwenden:
1 | while (...)
|
2 | {
|
3 | if (regelung_ist_an)
|
4 | {
|
5 | //zyklischer code für die Regelung
|
6 | }
|
7 |
|
8 | if (regelung_war_an && !regelung_ist_an)
|
9 | {
|
10 | //einmaliger code zum Abschalten der Regelung
|
11 | }
|
12 |
|
13 | //den letzten Wert merken
|
14 | regelung_war_an= regelung_ist_an;
|
15 | }
|
Ach ja:
- deine Einrückung saugt
- deine Variablennamen saugen noch mehr