Geht mit Java überhaupt was?

JL51

Aktives Mitglied
Hallo, ich bin geschockt über folgendes Problem: Ich will prüfen, ob eine Zahl gerade oder ungerade ist. Der Code dazu lautet:

[Java]
public class Ulam
{
public static void main (String[] args)
{
double zahl, erg, nst, pruefwert;
zahl = 5;

erg = zahl/2;
nst = erg - Math.floor(erg);//Nachkommastellen

if (nst = 0)
pruefwert = 0;
else
pruefwert = 1;
System.out.println(pruefwert);
}
}[/code]

Dann kommt die Fehlermeldung, daß bei if (nst = 0) Boolean verlangt wird. Im anderen Programmiersprachen können selbstverständlich auch float und double Zahlen über if(bla bla) bearbeitet werden. Wie darf ich denn nun obigen Konflikt lösen? Eine int Variable erstellen und dann den double-Wert von nst an die neue int-Variable überstellen zu wollen, geht natürlich auch nicht. Oder gibt es eine Möglichkeit, daß eben auch mit Java NICHT immer Boolean in if und while usw. verlangt wird? Danke.
 
Zuletzt bearbeitet von einem Moderator:

Tobse

Top Contributor
Anmerkung: andere Datentypen als einen boolean in ein if zu stecken ist Schwachsinn, auch wenn das mehrere Sprachen erlauben. Du sagst ja auch nicht "Wenn es 3.141 dann gehe ich spazieren, an sonsten sehe ich fern, es sei denn Apfel."
 

fLooojava

Bekanntes Mitglied
Tobse, warum?

Mir fällt da spontan ein Beispiel ein. Du willst eine Usereingabe erzwingen, und wenn der User den String "Hallo Bot." eingibt möchtest du dass "Hallo User." zurückgegeben wird. Dementsprechend vergleiche ich hier in meiner if-Abfrage den String von der Usereingabe, und schaue ob er irgendwo übereinstimmt.

Wie kommst du auf die Idee, nie was anderes außer true/false in ne if-Abfrage zu packen?
 

coco07

Bekanntes Mitglied
fLooojava@
Ich denke, er meint damit Ausdrücke, welche sich zu einem boolean auswerten lassen. Kann jemand eine Sprache und konkretes Beispiel dafür nennen? In C habe ich mal von so etwas gehört: if(referenz)... Wenn die referenz != null ist, wird die Bedingung als "true" gewertet. Außer der ersparrten Schreibarbeit finde ich nun aber nicht wirklich einen Unterschied. Und ich finde die in Java verwendete Syntax um einiges leichter zu lesen..

grüße coco07!
 

Saheeda

Top Contributor
@coco07

In JavaScript kann man sowas z.B. machen. if(object) funktioniert _glaube_ ich auch in PHP.

Code:
if(object){
 //Prüfung,ob das Objekt auf null zeigt
}

if(object.property){
//Prüfung, ob das Feld existiert
}

if(object.method){
//Prüfung, ob die Methode existiert
}
 

Tobse

Top Contributor
@coco07

In JavaScript kann man sowas z.B. machen. if(object) funktioniert _glaube_ ich auch in PHP.

Code:
if(object){
 //Prüfung,ob das Objekt auf null zeigt
}

if(object.property){
//Prüfung, ob das Feld existiert
}

if(object.method){
//Prüfung, ob die Methode existiert
}

Richtig. In PHP z.B.:

PHP:
$var = ... ;
if ($var)
{
    // wird ausgeführt für folgende werte von $var
    // != null, true, 1, > 0
}

Das halte ich aber für Schwachsinn.

Das ist richtig, aber es werden trotzdem zwei Strings reingesteckt - Die Auswertung ist dann vom Typ Boolean, aber nicht die Ausdrücke, welche reingesteckt werden.

Ja, das meinte ich. Folgender Code angenommen:

Java:
String input = ... ;
if ("Hallo Bot".equals(input))
{
    // do Sth.
}

Dann geht aber kein String (und schon garkeine Zwei) in das If, sondern ein Boolean. Denn "Hallo Bot".equals(input) evauliert zu einem Boolean. Folgender code ist korrekt:

Java:
boolean userSaidHello = input.equals("Hallo Bot");
boolean foobar = 3 == 4;

Was ich für Schwachsinn halte ist folgendes:
PHP:
if ("Hi") { /* */ }
 

fLooojava

Bekanntes Mitglied
Najaaa... "Hallo Bot." ist ein String und input repräsentiert ebenfalls ein String und grundsätzlich werden zwei Strings miteinander verglichen. Das ist Fakt. :p

Ich denke darüber kann man sich streiten, aber die Auswertung ist wie du sagtest ein boolean. Sprich der Ausdruck in der if-Anweisung nach der Auswertung ist vom Typ her ein boolean. ;)

Aber du hast natürlich Recht.


Gruß
 

Tobse

Top Contributor
Najaaa... "Hallo Bot." ist ein String und input repräsentiert ebenfalls ein String und grundsätzlich werden zwei Strings miteinander verglichen. Das ist Fakt. :p

Ich denke darüber kann man sich streiten, aber die Auswertung ist wie du sagtest ein boolean. Sprich der Ausdruck in der if-Anweisung nach der Auswertung ist vom Typ her ein boolean. ;)

dann haben wir uns da missverstanden. Natürlich macht es Sinn, zwei Strings in einem If zu vergleichen, ganz gemäß der Aussprache: Wenn die Eingabe gleich "Hello Bot" ist. Aber Wenn Baum dann gehe 3 Schritte ist nich teindeutig und finde ich verwirrend.
 

CSHW89

Bekanntes Mitglied
Darüber lässt sich definitiv streiten. In Python bspw. kannst du jedes Objekt als Bedingung verwenden. Wenn das Objekt die Methode "__nonzero__" (in Python 3 heißt sie "__bool__") definiert, wird diese aufgerufen. Dessen Rückgabe muss dann ein boolean-Wert sein. Ich glaube alle Standarddatentypen haben sie definiert. So ist die Zahl 0, ein leerer String, eine leere Liste oder ein leeres Dictionary, alles false.

Ich gehe mit dir konform, dass das in Java eher nicht angebracht wäre, da sie streng typpisiert ist. Aber gerade in Scriptsprachen, finde ich, ist diese Schreibweise oft eleganter und auch übersichtlicher. Solange die "Regeln" halbwegs logisch definiert sind.

lg Kevin
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Geht das bei Java ? Java Basics - Anfänger-Themen 11
I Java Code so gut es geht Kommentieren Java Basics - Anfänger-Themen 4
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
D Java geht auf windows 64 bit nicht. Java Basics - Anfänger-Themen 5
Thallius Klassen aus Classname programmatisch erzeugen. Wie geht das in java? Java Basics - Anfänger-Themen 5
R Java JDK/ Kompiler geht nicht Java Basics - Anfänger-Themen 4
N JAVA Installation - Umgebungsvariable geht nicht. Java Basics - Anfänger-Themen 3
A javac geht, java nicht ? Java Basics - Anfänger-Themen 20
P Java Ticker auf HP geht nicht. Java Basics - Anfänger-Themen 2
M java Programmname, mal geht es mal nicht Java Basics - Anfänger-Themen 3
H Delphi in Java einfügen, geht das? Java Basics - Anfänger-Themen 2
J Java-Chat geht nicht | Brauche dringent hilfe! Java Basics - Anfänger-Themen 3
megachucky Java.exe geht, aber Javac.exe nicht ? Java Basics - Anfänger-Themen 2
A Java auf dem PDA compilieren. Geht das? Java Basics - Anfänger-Themen 13
G variable felder in java? geht das? Java Basics - Anfänger-Themen 4
G Java Installation geht nicht bei W2K Java Basics - Anfänger-Themen 7
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
Ostkreuz wie geht der catch? Java Basics - Anfänger-Themen 3
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
P Installation JRE 8u321 startet, geht aber nicht weiter Java Basics - Anfänger-Themen 1
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
E Pervasive PSQL insert funktion geht nicht Java Basics - Anfänger-Themen 9
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
H Wie geht eigentlich Objektorientierung? Java Basics - Anfänger-Themen 14
M Methoden Wert einer Variable geht verloren? Java Basics - Anfänger-Themen 6
melisax Lower & Uppercase Beispielprogramm geht nicht Java Basics - Anfänger-Themen 3
MarcKKKK123 Wie geht das? Java Basics - Anfänger-Themen 1
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
N methodenaufruf for each geht nicht Java Basics - Anfänger-Themen 2
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
W App geht live und dann? Java Basics - Anfänger-Themen 9
P Geht es vielleicht viel kürzer? Java Basics - Anfänger-Themen 7
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
K Erste Schritte Programm geht aus Schleife, warum? Java Basics - Anfänger-Themen 2
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
B OCR - Rechnungserkennung, wie geht das genau? Java Basics - Anfänger-Themen 59
CptK Klassen KeyListner geht nicht Java Basics - Anfänger-Themen 7
L Klassen Objekt aus einer Warteschlange in eine andere übergeben, geht nicht? Java Basics - Anfänger-Themen 6
K Armstrong Programm geht nur bis 1000, aber nicht weiter Java Basics - Anfänger-Themen 2
M Nim-Spiel geht in den negativen Bereich Java Basics - Anfänger-Themen 1
amazinglife77 Input/Output Lesen/Schreiben Properties: in eclipse geht, als JAR nicht Java Basics - Anfänger-Themen 4
V Erste Schritte Warum geht meine continue Anweisung nicht? Java Basics - Anfänger-Themen 8
MR._FIRE_Flower String.split("(") geht nicht Java Basics - Anfänger-Themen 4
M Restbuchwert Berechnung geht nicht Java Basics - Anfänger-Themen 45
K Klassen Nachträglich ein Objekt einem anderen zuweisen, geht das? Java Basics - Anfänger-Themen 2
S int addieren geht nicht Java Basics - Anfänger-Themen 13
L system.print.out geht nicht Java Basics - Anfänger-Themen 11
M Referenz geht bei Zwischenspeichern verloren (ArrayList) Java Basics - Anfänger-Themen 4
S Komma geht beim Schreiben ins csv verloren. Java Basics - Anfänger-Themen 6
M Arrays einspeichern geht nicht Java Basics - Anfänger-Themen 21
J BlueJ und import-Anweisungen, wie geht das? Java Basics - Anfänger-Themen 4
J Debuggen - wie geht das? Java Basics - Anfänger-Themen 6
I erstelle Vorschaubild mit der lib PDF-Renderer und möchte danach Dateiname ändern -> geht aber nicht Java Basics - Anfänger-Themen 0
J Ausführen geht nicht Java Basics - Anfänger-Themen 19
G System.out.printf geht nicht Java Basics - Anfänger-Themen 6
E Erste Schritte [Noob] Warum geht meine For-Schleife nicht? Java Basics - Anfänger-Themen 2
S Button "Berechnen" geht nicht Java Basics - Anfänger-Themen 3
K JUnit: Objekte von eigenen Klassen vergleichen...geht nicht Java Basics - Anfänger-Themen 5
T fianl array geht nicht... Java Basics - Anfänger-Themen 2
O if and else geht nur manchmal Java Basics - Anfänger-Themen 17
B Nichts geht mehr Java Basics - Anfänger-Themen 10
V Einfacher vergleich von Arrays geht schief Java Basics - Anfänger-Themen 2
T sample.war geht nicht... Java Basics - Anfänger-Themen 1
C Datentypumwandlung geht nicht Java Basics - Anfänger-Themen 5
U kompilieren geht nicht wg. Formatierung wahrscheinlich Java Basics - Anfänger-Themen 7
G While schleife mit 2 Bedingungen geht nicht! Java Basics - Anfänger-Themen 15
S Methoden Rückgabewert einer Methode als Parameter an eine andere Methode übergeben, geht das? Java Basics - Anfänger-Themen 5
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
O Jar Datei erstellen geht nicht. Java Basics - Anfänger-Themen 4
O (.+?) --> $1 geht nicht Java Basics - Anfänger-Themen 5
V relativer Pfad geht nicht, absolut schon? Java Basics - Anfänger-Themen 3
H Geht dieser Code noch einfacher (try catch finally) Java Basics - Anfänger-Themen 7
P Geht dieser Code noch einfacher? Java Basics - Anfänger-Themen 16
J Warum geht int und String nicht? Java Basics - Anfänger-Themen 18
J repaint() geht gar nicht; GUI aktualisieren Java Basics - Anfänger-Themen 10
N ArrayList geht nicht Java Basics - Anfänger-Themen 8
B Erste Schritte Listing aus Buch - wie geht das? Java Basics - Anfänger-Themen 6
K Datentypen Kurzform Addition geht, Langform scheitert am Typen Java Basics - Anfänger-Themen 6
R Einfacher Timer geht nicht Java Basics - Anfänger-Themen 7
J Anzeige erneuern, wie geht das? Java Basics - Anfänger-Themen 6
D Compiler-Fehler ANT-Script geht nicht Java Basics - Anfänger-Themen 6
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
K Aus JFrame-Fenster SuM-Fenster öffnen geht nicht! Java Basics - Anfänger-Themen 8
L Jarfiles packen, wie geht's genau? Java Basics - Anfänger-Themen 12
K Erste Schritte Progressbar geht nicht Java Basics - Anfänger-Themen 5
H Ein alternativer Konstruktor geht nicht Java Basics - Anfänger-Themen 3
B Std-Serialisierung - Speichern/Laden geht nur auf einem Rechner Java Basics - Anfänger-Themen 17
F Geht in alle Case rein, warum?? Java Basics - Anfänger-Themen 12
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
P quickSort eines Objekt-Arrays geht nicht! Java Basics - Anfänger-Themen 11
M if then else geht nicht Java Basics - Anfänger-Themen 10
N Methoden mehrere replace hintereinander geht nicht ? Java Basics - Anfänger-Themen 2
Maxim6394 KeyListener geht nicht Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben