Vergleichen Array Wert mit Variable Wert



  • 314159265358979 schrieb:

    Der Profi C++'ler erreicht mit einem eleganten Schwung die Enter-Taste, bevor er die {-Taste drückt.

    Der Profi C++'ler weiß natürlich, dass er den Stil nach eigenem Gutdünken wählen kann, dass beide Varianten in Ordnung sind und dass letztendlich entweder der eigene Anspruch an Lesbarkeit oder übergeordnete Richtlinien entscheidend sind. 😉



  • 314159265358979 schrieb:

    Der Profi C++'ler...

    ...arbeitet in der Regel nicht für sich Alleine, sondern im Team, und auch wenn er bestimmtes hinterfragen, und vielleicht ändern kann, ist dies dennoch eine Angelegenheit des Teams und nicht des Einzelnen.

    P.S: Und auch wenn ich die öffnende geschweifte Klammer in einer eigenen Zeile vorziehe, und dafür gute Gründe habe, heißt das nicht das ich im "Recht" bin und behaupte das Alle die es anders machen keine Ahnung haben (Das gilt auch für andere Dinge wie "const int a" versus "int const a").



  • asc schrieb:

    ...arbeitet in der Regel nicht für sich Alleine, sondern im Team, und auch wenn er bestimmtes hinterfragen, und vielleicht ändern kann, ist dies dennoch eine Angelegenheit des Teams und nicht des Einzelnen.

    So wahr. Ich bevorzuge zwar die zeilenärmere Variante (Klammer noch in der Zeile der Anweisung), aber ich könnte auch gar nicht anders. Wir haben da noch ein paar uralte Codeparser im Einsatz, die uns viel Code erzeugen und somit eine Menge Arbeit abnehmen. Die sind aber so übel geschrieben, dass eine Klammer in der nächsten Zeile das Ganze aus dem Tritt bringt. 😮 Solange sich also keiner da ransetzt und die Dinger umschreibt, müssen sich sowieso alle an den hier verwendeten Stil halten, ob sie wollen oder nicht. 😞



  • Ich kann nur von meinen Erfahrungen (C#) sprechen, aber ich durfte mir meinen Codestil weitestgehend aussuchen. Dennoch habe ich mich an die Team-Regeln gehalten, da sie ungefähr dem entsprechen, wie ich bisher in C++ programmiert habe. (mit kleinen Unterschieden bei den Namenskonventionen.)



  • 314159265358979 schrieb:

    Ich kann nur von meinen Erfahrungen (C#) sprechen, aber ich durfte mir meinen Codestil weitestgehend aussuchen. Dennoch habe ich mich an die Team-Regeln gehalten, da sie ungefähr dem entsprechen, wie ich bisher in C++ programmiert habe. (mit kleinen Unterschieden bei den Namenskonventionen.)

    Es gibt also irgendwie schon Konventionen, aber jeder darf trotzdem machen, was er will? Seltsam. 😉



  • Es gibt Regeln, wie der Code im Idealfall aussehen sollte, aber man muss sich nicht zu 100% daran halten.



  • ich dachte wenn ich überprüfe die Variable svn
    mit dem Array über Index

    if(array[j]==svn)

    bekomme ich die Ausgabe wenn die svn ein zweites mal eingegeben wird,
    die Ausgabe ist allerdings so das der Wert in der runden Klammer immer
    True ist bitte warum verstehe ich nicht.

    #include <iostream>
    
    using namespace std;
    
    int main(){
    
        int svn=1;
        int anzahl=0;
        int array[90];
            for(int i=0; svn!=0;i++) {
            cout<<"Bitte Sozialversicherungsnummer eingeben; Ende = '0'"<<endl;
            cin>>svn;
            anzahl++;
            array[i]=svn;                            
                if(anzahl>=2){
                    for(int j=0;j<anzahl;j++){
                        if(array[j]==svn){
                        cout<<"WARNING Sozialversicherungsnummer bereits vorhanden"<<endl;
                        }
                    }         
                }
            }               
         }
    


  • for(int j=0;j<anzahl;j++){

    Gehe nur bis j<i, denn bei i (= anzahl-1) ist ja das zuletzt eingefügte. Oder noch sinnvoller, prüfe erst ob es schon vorhanden ist und füge es danach ein. Oder benutze wie schon ganz am Anfang erwähnt vorhandene Klassen, Funktionen der STL.



  • brotbernd schrieb:

    for(int j=0;j<anzahl;j++){

    Gehe nur bis j<i, denn bei i (= anzahl-1) ist ja das zuletzt eingefügte. Oder noch sinnvoller, prüfe erst ob es schon vorhanden ist und füge es danach ein. Oder benutze wie schon ganz am Anfang erwähnt vorhandene Klassen, Funktionen der STL.

    SUPER danke sehr jetzt funktioniert es danke vielmals lg markus



  • markuswenczel schrieb:

    SUPER danke sehr jetzt funktioniert es danke vielmals lg markus

    Wobei du das Einrücken dennoch überdenken solltest (nachfolgend mal etwas angepasst):

    #include <iostream>
    
    using namespace std;
    
    int main() {
        int svn=1;
        // ...
        // Die Schleife beginnt im gleichen Block wie die Variablendeklaration
        for(int i=0; svn!=0;i++) {
            // Der Schleifeninhalt ist ein eigener Gültigkeitsbereich
            cout<< "Bitte...";
            // ...
        } // <-- Jetzt sieht man als Leser auch WAS geschlossen wird.
    }
    

    Besser lesbarer Code wird eher durchgelesen und man erhält eher eine Hilfe.

    Zudem: Du fügst trotz Warnung eine Dopplung ein, das Einfügen sollte wirklich erst nach der Prüfung erfolgen, und auch nur wenn diese erfolgreich ist.


Anmelden zum Antworten