1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Java Newbie - Boolean Problem

  • Major_Payne
  • 11. Oktober 2006 um 13:05
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Major_Payne
    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
    Punkte
    1.079
    Beiträge
    210
    • 11. Oktober 2006 um 13:18
    • #2

    wann bzw. wo im programm wird variable gesetzt?

  • Major_Payne
    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
    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);
  • Lord Binary
    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 ?

  • sauzachn
    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)...

  • Lord Binary
    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.)

  • 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!
    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.)

  • Major_Payne
    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.

  1. Datenschutzerklärung
  2. Impressum