Forum: PC-Programmierung raus von einer while schleife für eine andere


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Kaiser K. (kingkong_18)


Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

ich hoffe ich könnte eine Lösung hier finden.

wie kann man aus einer While-Funktion zu einer anderen raus .

ZB

while (1)
{
  if(0 == strcmp( meine-Tastaur-eingabe, disable) )
  {
     run = 1;
  }
  else
  {
    weiter mit tastatur eingabe
  }

}

und wenn die erste if- Bedingung richtig geprüft ist, sollte die zweite 
while-funktion starten.

while(1== run)
{
}

ich habe schon mit "break" und "continue" aber ich komme nicht auf meine 
Wunsch und ich würde gerne was anderes probieren

DANKE in Voraus

von Max B. (theeye)


Bewertung
0 lesenswert
nicht lesenswert
Klingt als ob du eine vernünftige switch case Strukturierung bräuchtest. 
Falls dich englisch nicht stört, war gerade Thema bei den freaks: 
https://www.avrfreaks.net/forum/many-if-statements-alternative

Hier wirst du dazu auch einiges finden aber mit dem Handy suche ich 
jetzt nicht danach :-)

Gruß
Max

von mmm (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Du sprichst in Rätseln... Was willst Du?
1
while (1)
2
{
3
  if(0 == strcmp( meine-Tastaur-eingabe, disable) )
4
  {
5
     run = 1;
6
     break;
7
  }
8
  else
9
  {
10
    weiter mit tastatur eingabe
11
  }
12
13
}
14
15
while(1== run)
16
{
17
}

Das macht schon das, was Du beschreibst. Aber das ist wohl nicht, was 
Du willst.

Was Du eigentlich willst kann garantiert mit einer einzigen 
while-Schleife und einer State-Machine realisiert werden...

von Anka B. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kaiser K. schrieb:
> while (1)
> {
>   if(0 == strcmp( meine-Tastaur-eingabe, disable) )
>   {
>      run = 1;
>   }
>   else
>   {
>     weiter mit tastatur eingabe
>   }
>
> }

Ersetze "while (1)" durch
run = 0;
while(run == 0)
und es sollte laufen wie gewünscht

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.