1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Java Newbie - Boolean Problem

  • Major_Payne
  • 11. Oktober 2006 um 13:05
  • Unerledigt
  • Major_Payne
    3
    Major_Payne
    Mitglied
    Punkte
    50
    Beiträge
    9
    • 11. Oktober 2006 um 13:05
    • #1

    Hallo Java Experten!

    Ich brauche euere Hilfe, da ich noch Anfänger bin und mich nicht "g'scheit" auskenne, bei der boolean Funktion.

    Ich brauche eine Boolean, die true ist, wenn eine von zwei Bedingungen erfüllt ist.

    Folgender Code funktioniert nicht:

    Code
    boolean validvariable = ( variable ==1 || variable == 0);
    
    
        if (validvariable){
           *Hier steht, was er machen soll, wenn boolean = true*
           } 
        else
           *Hier steht, was er machen soll, wenn boolean = false*


    Die boolean soll true sein, wenn die Variable variable 1 oder 0 ist.

    Leider geht das Programm immer in den else Zweig.
    Was hab ich falsch gemacht??

    Danke für eure Hilfe! :shinner:

    P.S.: Ich hoffe ich hab das Problem nicht zu blöd beschrieben... :)

  • Homer
    10
    Homer
    Mitglied
    Reaktionen
    9
    Punkte
    1.079
    Beiträge
    210
    • 11. Oktober 2006 um 13:18
    • #2

    wann bzw. wo im programm wird variable gesetzt?

    "ich bin so kluk. K-L-U-K"
    (Homer Jay Simpson)

  • Major_Payne
    3
    Major_Payne
    Mitglied
    Punkte
    50
    Beiträge
    9
    • 11. Oktober 2006 um 13:25
    • #3

    Die Variable 'variable' wird bereits vor der Boolean-Funktion gesetzt (genauer am Anfang des Programms) und ist integer, jedoch habe ich die Variable 'validvariable' nicht gesetzt (Ist das vl das Problem?).
    Wenn ja, wie setze ich diese Variable 'validvariable'?

    Code
    int variable;
    //...
    boolean validvariable = ( variable ==1 || variable ==0)
    //...
  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 11. Oktober 2006 um 14:15
    • #4

    mit "int variable" deklarierst du nur die Variable, sie hat aber noch keinen Wert. Probier folgendes:

    Code
    int variable = 1;
    boolean validvariable = (variable==1 || variable==0);

    640K ought to be enough for anybody. :eek2:

  • Lord Binary
    18
    Lord Binary
    Mitglied
    Reaktionen
    11
    Punkte
    3.301
    Beiträge
    647
    • 11. Oktober 2006 um 15:58
    • #5
    Zitat


    mit "int variable" deklarierst du nur die Variable, sie hat aber noch keinen Wert.

    Doch, nämlich den Defaultwert, bei ints 0.

    Eine uninitialisierter primitiver Datentyp als lokale Variable -> das darf nicht compilieren.
    Also, entweder ist der verwendete Java-Compiler fehlerhaft oder die Behauptung daß das so wäre.

    BTW: Boolean versus boolean -> zwei verschiedene Dinge.

    BTW^2: Den Wert von "variable" unmittelbar vorm if auszugeben bzw anzusehen -> schlechte Idee ?


    Trading for a living [equities,futures,forex]

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 11. Oktober 2006 um 16:22
    • #6
    Zitat von Lord Binary

    Eine uninitialisierter primitiver Datentyp als lokale Variable -> das darf nicht compilieren.


    War's nicht so, dass nur klassenweite Instanzen automatisch initialisiert werden? Ich merk mir das auch nie (bin kein aktiver Java-Programmierer)...

    Dipper dipper dii dipper dii dipper dii duuu

  • Lord Binary
    18
    Lord Binary
    Mitglied
    Reaktionen
    11
    Punkte
    3.301
    Beiträge
    647
    • 11. Oktober 2006 um 17:17
    • #7
    Zitat


    War's nicht so, dass nur klassenweite Instanzen automatisch initialisiert werden? Ich merk mir das auch nie (bin kein aktiver Java-Programmierer)...

    Weiß jetzt nicht genau, was Du mit klassenweiten Instanzen meinst ...
    Statics ?

    Die Regel ist jedenfalls ganz einfach: Instanzvariablen (egal ob static oder nicht) bekommen einen Defaultwert. (nämlich 0 für die numerischen dts, false für boolean, null für Referenzen)
    Lokale Variablen bekommen keinen Defaultwert; uninitialisierte lokale Variablen erlaubt der Compiler nicht.
    (Der einzige Unterschied von Statics und nicht Statics bzgl. Defaultwerte ist eigentlich der Zeitpunkt der Zuweisung.)


    Trading for a living [equities,futures,forex]

  • Paulchen
    1
    Paulchen
    Gast
    • 11. Oktober 2006 um 17:23
    • #8

    Um wieder auf das eigentliche Problem zurückzukommen:

    Ein Vergleich (mit "==") liefert bereits einen Wert vom Typ boolean, den brauchst du dann nur in "validvariable" speichern.

    Zitat von Swoncen
    Code
    int variable = 1;
    boolean validvariable = (variable==1 || variable==0);

    Also nicht so, sondern:

    Code
    boolean validvariable = (variable==1);
  • Plantschkuh!
    24
    Plantschkuh!
    Mitglied
    Reaktionen
    163
    Punkte
    6.173
    Beiträge
    1.181
    • 11. Oktober 2006 um 18:26
    • #9

    Major_Payne, hier ein Tip, den du dein ganzes Leben lang mit dir mitschleppen kannst: Ein kleines vollständiges Programm, oder allerzumindestens eine kleine vollständige Methode gehört zu einer anständigen Problembeschreibung dazu. Denn dann sehen die anderen wirklich, was dein Code tut, und müssen nicht raten, ob du irgendwas initialisiert hast oder nicht.

    Also wenn das Problem noch besteht: nimm dein Programm her, nimm alles raus, was nicht mit diesem einen Codestück zu tun hat, aber das Programm noch immer compilierbar und lauffähig ist, und poste das.

    (Und ignoriere den Rat von Leuten, die deine Spezifikation nicht gelesen haben.)

    *plantsch*

  • Major_Payne
    3
    Major_Payne
    Mitglied
    Punkte
    50
    Beiträge
    9
    • 11. Oktober 2006 um 18:41
    • #10

    Danke für die Hilfe, jetzt hats geklappt! :D:D:D

  • Maximilian Rupp 27. Dezember 2024 um 12:05

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung