Vermeiden von doppelten Code

B

Bullz

Mitglied
Thread Starter
Dabei seit
11.09.2011
Beiträge
63
Reaktionspunkte
0
Hallo, Source Code sagt ja bekanntlich mehr wie 1000 Wörter.

Habe eine Variable bVar die entweder an dieser Stelle true / false sein kann.


Code:
Bool bVar = true | false
if (Bool == 1) {
if (bedingungen1 && bedingungen2)
//Anweisungsblock 10 Zeilen lang
} else {
if (bedingungen1) // ist die exakt gleiche wie die bedingungen1 von oben.
//Gleicher Anweisungsblock wie oben 10 Zeilen lang
}
So habe ich es implementiert und es funktioniert. Habe aber 2 mal den gleichen Code. Wie bekomme ich das schöner hin ohne den gleichen Code 2 mal verwenden zu müssen ?
 
indem du den Codeblock in eine eigene Methode baust und dann an verschiedenen Stellen einfach nur die Methode mit Parametern aufrufst.
 
indem du deine if abfrage verbesserst.
wenn bei beiden bedingungen der gleiche code ausgeführt wird, kannst die ja auch verknüpfen.
if (bedingung1 || (bedingung1 && bedingung2))
 
indem du deine if abfrage verbesserst.
wenn bei beiden bedingungen der gleiche code ausgeführt wird, kannst die ja auch verknüpfen.
if (bedingung1 || (bedingung1 && bedingung2))

Und plötzlich merkt man, dass man Bedingung2 auch komplett weglassen kann :)
 
  • Gefällt mir
Reaktionen: Phrasenbieger
Nur so am Rande: Muss es nicht heißen if bVar ==1 und nicht if Bool == 1? Weil Bool ist ja nur der Datentyp. Jedenfalls ist das bei c++ so. Dann könnte man auch nur bool bVar; schreiben da eine Bool ja sowieso nur true oder false sein kann.
 
Nur so am Rande: Muss es nicht heißen if bVar ==1 und nicht if Bool == 1? Weil Bool ist ja nur der Datentyp. Jedenfalls ist das bei c++ so.

ja, das siehst du schon richtig.
ich denke mal beim pseudo code schreiben für hier hat er nicht aufgepasst.
 
indem du deine if abfrage verbesserst.
wenn bei beiden bedingungen der gleiche code ausgeführt wird, kannst die ja auch verknüpfen.
if (bedingung1 || (bedingung1 && bedingung2))

Da hast du das if/else mit dem bVar==1 aber komplett ignoriert..... kommt davon, wenn man Quelltext nicht vernünftig mit Einrückungen formatiert ;)

Richtig wäre wohl
if ((bVar == 1 && bedingungen1 && bedingungen2) || (bVar == 0 && bedingungen1)) .........
 
Da hast du das if/else mit dem bVar==1 aber komplett ignoriert..... kommt davon, wenn man Quelltext nicht vernünftig mit Einrückungen formatiert ;)

ja, hast recht, hab ich übersehen oder direkt wegen Bool == 1 schon ausgeblendet gehabt.
 
Edit, hat sich erkledigt
 
Klasse! Echt gar keine Manieren mehr die Leute. :d
 
Zuletzt bearbeitet:
Zurück
Oben Unten