Wahrheitstafel

dolu28

Aktives Mitglied
Hallo, ich habe ne Frage zur einem Beispiel:
Java:
public class test {
    boolean zustand =false;
     public static void main (String [] args){       
         ha obj =new ha();       
         for (int i=0; i<=3; i++){
             if(obj.getZusand()==true){               
                 System.out.println(""+i+" true");
             }
             else{               
                 System.out.println(""+i+" false");               
             }           
         } 
     }

     public boolean getZustand(){
            zustand =(zustand ==false);
            return zustand;          
        }
    }
1. Ich bin mir nicht sicher aber kommt hier als Ergebnis false raus?
2. Kann man false == true ausführen ? Wenn ja was würde es ausgeben ?Ein True oder False
MFG
 
Zuletzt bearbeitet von einem Moderator:

Robat

Top Contributor
Moinsen,

man kann dem Code das Ergebnis mMn nicht entnehmen, da man die klasse ha nicht kennt und nicht weiß wie dort die getZustand() Methode aussieht bzw der zustand initialisiert wird.
Sollten die Bedingungen so wie in der test-Klasse sein, dann müsste das Ergebnis so aussehen:
Code:
0 true
1 false
2 true
3 false

Zu deiner 2. Frage:
Das schöne an der Programmierung ist doch, dass man Dinge ausprobieren kann. Lass dir doch einfach mal System.out.println(false == true); ausgeben und schau was da raus kommt :) Kompilierbar ist es allemal. Man könnte sich auch überlegen was da raus kommt. Bei false == true kommt nur dann true raus wenn beide Ausdrücke gleich sind. Da true nun mal nicht false ist, kommt false raus :)

Gruß
 

VfL_Freak

Top Contributor
Moin,

mal so nebenbei:
Java:
if(obj.getZusand()==true){
Vielleicht ist es ja nur ein Fehler durch das Reinkopieren hier, aber achte immer auch korrekte Schreibweise, denn den Methode heißt "getZustand" !!
Außerdem kannst Du hier auch direkt
Java:
if( obj.getZustand() ){
schreiben, da dies ja einen bool'schen Wert liefert. Das '==true' mag für dich übersichtlicher sein , ist hier aber eigentlich überflüssig!

Java:
public boolean getZustand()
{
    zustand = (zustand ==false);
    return zustand;        
}
1. Ich bin mir nicht sicher aber kommt hier als Ergebnis false raus?
2. Kann man false == true ausführen ? Wenn ja was würde es ausgeben? Ein True oder False
zu 1. IMHO macht die erste Zeile eh' keinen Sinn! Die Methode soll doch den Wert von 'zustand' zurückgeben, also würde das "return zustand" völlig reichen!
So gibst Du immer genau den entgegengesetzen Wert zurück !
zu 2. Ausführen?? "==" ist halt ein einfacher Vergleich, der beide Operanden auf Gleichheit prüft! Grundsätzlich kannst Du natürlich alles mit allem vergleichen. Ob es immer Sinn macht, ist eine andere Frage ...

Und zur Frage was herauskommt: wir oben schon erwähnt: probiere es doch einfach aus oder mach' es mit einer kleinen Wahrheitstabelle, dann wirst Du es schnell erkennen ;)

Gruß Klaus
 

VfL_Freak

Top Contributor
Moin,
Diese Zeile dürfte das Ergebnis doch theoretisch negieren oder nicht?
auch praktisch ;)

Weglassen würde ich sie also nicht, wenn das so sein soll...
Das ist halt die Frage ...
Anhand des Methodennamens "getZustand" würde ich den Wert von "zustand" erwarten und nicht das Gegenteil ... :p

Aber der tiefe Sinn des Code rsp. der genaue Ablauf ist unklar, wie @Robat oben schon erläutert hat :)

Gruß Klaus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Wahrheitstafel Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben