Forum: Compiler & IDEs AVRStudio IF/ELSE 3 Abfrage Paramter


von Ascmm (Gast)


Lesenswert?

Hallo wie schon der Titel beschreibt habe ich eine frage zu der if/else 
Schgleife.

Die Normale Schleife baut auf 2 Abfragen auf

if XXXX

else XXXX


Wie kann ich eine schleife für 3 Abfragen machen?

also in etwa:

If
else
else

Gruß

ascmm

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ascmm schrieb:
> Die Normale Schleife baut auf 2 Abfragen auf

Nein. Tut sie nicht.

Besorg Dir ein C-Buch.

von Chris (Gast)


Lesenswert?

if()
{}
else if()
{}
else if()
{}
else
{}

von Ascmm (Gast)


Lesenswert?

Danke für die schnelle antowrt @chris

@ Moderator Sorry ge... würde dich mal sehen wenn zeit 1 Woche den myK2 
Kit hast.... könntest als Moderator einfach eine nette normale antwort 
geben wie der Gast (chris).

von KeinProfi (Gast)


Lesenswert?

Mal ganz im Ernst, bin selber kein Profi, eher ein Anfänger was C 
angeht.
Aber wenn man "c if" in Google eintippt erhält man Ungefähr 
6.600.000.000 Ergebnisse (0,23 Sekunden) da sollte man schon was finden.

Ist jetzt nicht böse gemeint, kenne das Problem wenn man an drei Fronten 
gleichzeitig kämpft. Aber vor einer Frage mal kurz zu googeln ist nicht 
nur besser für die genervten Leser in Foren sondern auch bedeutend 
schneller.

von Peter II (Gast)


Lesenswert?

Ascmm schrieb:
> Danke für die schnelle antowrt @chris
>
> @ Moderator Sorry ge... würde dich mal sehen wenn zeit 1 Woche den myK2
> Kit hast.... könntest als Moderator einfach eine nette normale antwort
> geben wie der Gast (chris).

vermutlich hat er es geschrieben, weil es überhaupt keine if - schleife 
gibt.

wo soll denn da eine schleife sein?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter II schrieb:
> vermutlich hat er es geschrieben, weil es überhaupt keine if - schleife
> gibt.

Das zum einen, und außerdem ist ein verkettetes if nun wirklich sowas
von Grundlagenwissen, dass man in der Tat mit einem Buch oder Tutorial
beginnen sollte.

Aber gut, ein wenig ruppig war Rufus ja vielleicht.  Dann also nochmal
freundlicher:

Bevor man ein Werkzeug benutzt (hier: eine Programmiersprache), sollte
man sich zumindest grundlegend mit dessen Bedienung vertraut gemacht
haben.  Ein Forum kann und sollte kein Ersatz für einen Grundlagenkurs
in der Programmiersprache der eigenen Wahl sein.

von Peter D. (peda)


Lesenswert?

Naja, als Anfänger ist es nicht einfach, hinter die Philosophie von C zu 
steigen.

Ein "else" darf immer nur nach dem Ausdruck stehen, der einem "if" 
folgt.
2 "else" geht schon deswegen nicht, weil "else" keine Bedingung prüft.

Man könnte sich ein Macro definieren:
1
#define elif else if
wenn einem das besser gefällt.

Für mehrfache Verzweigungen bevorzuge ich aber switch/case. Ich finde 
das besser lesbar. Außerdem ergibt das oft kürzeren Code, da der 
Compiler alle Entscheidungen nach vorne zieht. Er muß also die Variable 
nicht weiter mitschleppen.

von Karl H. (kbuchegg)


Lesenswert?

Peter Dannegger schrieb:
> Naja, als Anfänger ist es nicht einfach, hinter die Philosophie von C zu
> steigen.

Jaein.

Aber auch als Anfänger sollte man wissen, dass man Dinge beliebig oft 
ineinander schachteln darf. Auch wenn mir das keiner explizit gesagt 
hat, war das schon irgendwie klar, dass ein
1
  if( Bedingung1 )
2
    ...
3
4
  else {
5
    if( Bedingung2 )
6
      ...
7
    else
8
    {
9
      if( Bedingung3 )
10
        ...
11
      else
12
        ...
13
    }
14
  }
zulässig sein muss. Und von dort weg, kommt dann irgendwann der 
Aha-Effekt, dass ein
1
  if( Bedingung1 )
2
    ...
3
4
  else if( Bedingung2 )
5
    ...
6
7
  else if( Bedingung3 )
8
    ...
9
10
  else
11
    ...
lediglich eine andere optische Anordnung desselben Codes darstellt. 
Durch Vergleich der beiden Schreibweisen wird auch unmittlbar klar, 
warum man hier eine Ausnahme in den Formatierregeln zulässt. 1) wäre 
nach den (reinen) Regeln der meisten Formatiervorschriften eigentlich 
die einzig wahre Schreibweise. 2) hat aber einige offensichtliche 
Vorteile, so dass man hier unter bestimmten Umständen eine Ausnahmen 
akzeptiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.