If mit Variablen Variablen



  • Hallo,

    ich habe 7 CheckBoxen. Alle aktivierten sollen als Und-Verknüpfung ausgewertet werden. Hierzu habe ich das Ergebnis in einem Array iArray[7].

    Beispiel: CheckBox 1 und 3 aktiviert
    Im Array steht 1011010

    Dementsprechend ist die Und Verknüpfung 1,3 erfüllt.

    Nun will ich nicht jede Eventualität mit einem If prüfen. Gibt es einen anderen Ansatz ..?

    Andi



  • Hallo,

    Interpretiere dein Array als binäre Zahl und werte die dann aus.



  • Aus CheckBox1 - 7 mache ich eine Binärzahl je nach Checked, also in meinem Beispiel:
    1010000

    In meinem Ergebnisarray der Übereinstimmungen steht dann z. B.:
    1011001

    Über eien Schleife prüfe ich die beiden Arrays. Wenn in CheckBoxArray an Position x eine 1 steht und an gleicher Position des Ergebnisarray auch -> mache weiter. Wenn nicht -> break;

    So spare ich mir alle If-Konstellationen zu prüfen.

    Vielen Dank



  • Wenn du beide Arrays als Binärzahlen hast, kannst du auch mit Bit-Operatoren darauf arbeiten, da ersparst du dir die gesamte Schleife:

    int boxes;// = 1010000
    int array;// = 1011010
    //baue beide Werte auf
    if(boxes&array == boxes)
      ... // alle wichtigen Bits im Array sind gesetzt - mache weiter
    

Anmelden zum Antworten