• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Vermeiden von doppelten Code

Status
Für weitere Antworten geschlossen.

Bullz

Querina
Registriert
19.07.10
Beiträge
187
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 ?
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Ist jetzt noch früh am morgen:
if (bedingungen1 and bedingungen2) or bedingungen1

;)
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Ein heißer Tipp sind auch immer sogenannte Methoden :) . Vor allem bei 10 Zeilen.

bVar taucht im Code nicht mehr auf. Im Übrigen macht deine fehlende Einrückung und fehlende Klammerung (naja, das bekommt ja nicht mal Apple auf die Reihe, wie wir wissen) das ganze recht schwer lesbar.
 

Marcel Bresink

Hadelner Sommerprinz
Registriert
28.05.04
Beiträge
8.571
Ist der Code richtig wiedergegeben oder wurde "Bool" mit "bVar" vertauscht?

Der ganze komplizierte Ausdruck könnte dann durch
Code:
if (bVar && bedingungen1) {
   // Anweisungen
}
ersetzt werden. Der Ausdruck bedingungen2 hat überhaupt keine Bedeutung.
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Schreiben wir den Code oben doch mal vernünftig lesbar auf:
Code:
BOOL bVar = YES | NO  <-  für iOS haben wir ja wohl Objective-C ;-)

if (bVar) {
    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
    }
}

Dann dürfte das gleiche Ergebnis wie folgt zu erreichen sein:
Code:
if (bedingung1 && ((bVar && bedingung2) || !bVar) {
    // Anweisungsblock 10 Zeilen lang
}
 
Zuletzt bearbeitet:

iowl

Tokyo Rose
Registriert
19.02.10
Beiträge
67
Ich hätte das so gemacht:

Code:
- (void)deineMethode {

   

    Bool bVar = true | false

    if (Bool == 1) {

        if (bedingungen1 && bedingungen2)

            [self zehnZeilenLangerAnweisungsblock];

            } else {

                if (bedingungen1) // ist die exakt gleiche wie die bedingungen1 von oben.

                    [self zehnZeilenLangerAnweisungsblock];

                    }

}



- (void)zehnZeilenLangerAnweisungsblock {

   

    //Anweisungsblock 10 Zeilen lang

}
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.508
Ist es wirklich notwendig, mit so einer Frage gleichzeitig in zwei Foren zu starten und Leute zu beschäftigen? Das ist doch weder lebensbedrohlich dringend noch bekommst du im einem keine Antworten.
Ich würde mich als Helfer da veräppelt fühlen.
 
  • Like
Reaktionen: ImpCaligula

ImpCaligula

deaktivierter Benutzer
Registriert
05.04.10
Beiträge
13.859
Ist es wirklich notwendig, mit so einer Frage gleichzeitig in zwei Foren zu starten

Mod Info
Wieso zwei Foren? Mit unserem sind es hier zusammen 4 Foren. Und wer weiß wo noch?
http://www.hardwareluxx.de/community/f24/vermeidung-von-doppelten-code-1019273.html
http://www.macuser.de/forum/thema/701630-Vermeiden-von-doppelten-Code?p=8211963
http://osxentwicklerforum.de/index.php/Thread/27966-Vermeiden-von-doppelten-Code/

Und überall wird fleißig geantwortet und die Lösungen liegen schon lange vor. Das nenn ich nicht nur einfaches Crossposting, das ist dezent ausgedrückt eine "Sauerei". Die User machen dies auf Kosten ihrer eigenen Lebenszeit und ahnen nicht, dass mehrfach schon geantwortet wurde.

Hier ist dann auch Ende... und diesmal folgt auch eine PN an den TE. Denn so etwas ist schon dreist.
 
Status
Für weitere Antworten geschlossen.