Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » If-abfrage läuft nicht richtig

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
08.07.2003, 14:21 Uhr
~MAs
Gast


Hi!

Was ist hier falsch? Wenn ich die if-Abfrage so aufbaue, und Wort = Anton ist, überspringt er einfach die else if-Abfrage.


Code:
std::string wort;
...

if(wort != "Anton")
{
    ...
}    

else if (Wort == "Anton) //Hier springt er gar nicht rein, auch wenn Wort = Anton ist
{

...

}



Schreibe ich es andersrum:


Code:
std::string wort;
...

if (Wort == "Anton)
{

...

}
else if(wort != "Anton")
{
    ...
}



geht er in die if-Abfrage (if (Wort == "Anton)), wenn Wort = Anton ist.

Was mache ich nur falsch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.07.2003, 14:28 Uhr
Oliver
S2-Pixelgeneral


Hallo,

schreibe doch einfach else und nicht else if.

Gruß Oli
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.07.2003, 14:56 Uhr
~MAs
Gast


Hi!

Inzwischen weiß ich, daß es nicht an meiner if-Abfrage liegt. Ich habe es in einem neuen Projekt ausgetestet, läuft einwandfrei. Die tatsächliche if-Abfrage befindet sich im Code in einer while-Schleife. Der Fehler muß also irgendwo dadrin stecken, mal gucken. Trotzdem Danke für Dein Interesse.

Mfg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.07.2003, 15:13 Uhr
Oliver
S2-Pixelgeneral


Trotzdem ist das else if eigentlich Quatsch, wenn ich das mal so sagen darf.

else if wird ich in deiner Situation lieber so einsetzen:


C++:

if(wort == "Anton")
{ }
else if (wort == "Tina")
{ }
else if(wort == "Ursula")
{ }
else // entspricht if(wort != "Anton")
{ }



Oli :wink:
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )

Dieser Post wurde am 08.07.2003 um 17:16 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
08.07.2003, 15:41 Uhr
~0xdeadbeef
Gast


Das ist ein Tipfeeler. Das eine mal schreibst du 'Wort' klein, das andere mal groß. Das sind unterschiedliche Variablen, in denen unterschiedliches Zeug drinstehen kann.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
08.07.2003, 15:56 Uhr
Oliver
S2-Pixelgeneral


Das meint er sicherlich nicht. Sonst würde ja ein Fehler beim komplimieren kommen.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.07.2003, 16:54 Uhr
~wissender
Gast


Natürlich überspringt es die else if, weil ja schon if eingetreten ist!
Es heißt ja nicht umsonst sonst tue...
Guck dir mal im Java- oder C-Buch die Definition von if und else if und else an.

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
08.07.2003, 18:07 Uhr
Oliver
S2-Pixelgeneral


Aber wenn das if nicht eingetreten ist, müsste doch der else if abgefragt werden.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.07.2003, 19:05 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


nun ja, einmal fragt er ja

Wort nach Anton hab, wenn dies ungleich ist, soll er schon ob wort ungleich Anton ist, vielleicht hat er da wirklich 2 Variablen, Wort und wort, ohne das er das bemerkt hat... (vielleicht irgendwo eine globale(re) Var, etz)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
08.07.2003, 19:16 Uhr
~MAs
Gast


Hi!

@Oliver Müller

Zitat:
Trotzdem ist das else if eigentlich Quatsch, wenn ich das mal so sagen darf.


Ist es nicht! Wenn nur "Anton" abgefangen werden muß und ich nicht vorhabe, (wie die von Dir vorgeschlagene Variante) für 1000 andere Fälle, die nicht von Interesse sind für mich, mit else if abzufragen, dann mache ich es so, wie ich es oben angegeben habe.

Wie bereits oben von mir geschrieben:

Zitat:

Inzwischen weiß ich, daß es nicht an meiner if-Abfrage liegt. Ich habe es in einem neuen Projekt ausgetestet, läuft einwandfrei. Die tatsächliche if-Abfrage befindet sich im Code in einer while-Schleife. Der Fehler muß also irgendwo dadrin stecken, mal gucken. Trotzdem Danke für Dein Interesse.


Ist meine If-Abfrage (auch in der ersten Variante) absolut korrekt! Ich habe irgendwoanders den Fehler in der While-Schleife (die die if-if-else-Abfrage kapselt)! Aber ich dachte, das hätte ich schon zum Ausdruck gebracht!

@~0xdeadbeef

Zitat:
Das ist ein Tipfeeler. Das eine mal schreibst du 'Wort' klein, das andere mal groß. Das sind unterschiedliche Variablen, in denen unterschiedliches Zeug drinstehen kann.


Ich habe meinen Snip-Code falsch getippt. Im tatsächlichen Code war "wort" korrekt geschrieben!

Tschau!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: