Java Buchstaben, Entscheidungen in einer Variabel speichern, wo ist der Fehler ?

FrazeColder

Lt. Commander
Registriert
Okt. 2013
Beiträge
1.721
Hey Community,

Wir sind in der Schule jetzt schon bei "Bedingte Anweisungen und Schleifen" angekommen, sprich if, else etc.., hatte auch schon "Erste Schritte" & "Variablen und Ausdrücke".

Ich komme leider jetzt aber nicht mehr weiter...
Wir sollen ein Programm entwickeln, was dir dein Idealgewicht+-2% sagt und was du gerade bist, Unter/-Übergewichtig oder im Idealgewicht, aber das ist ja nebensächlich.

Ich hänge jetzt an einer Sache, und zwar:
Wenn ich die Person nach dem Geschlecht frage, soll diese m oder w eingeben, für männlich oder weiblich.
Wenn die Person z.B. w eingibt, soll dies in einer Variabel gespeichert werden und das Programm soll dann via if (Variabel = w) entscheiden, ob für eine Frau oder ein Mann gerechnet werden muss. Aber wie kann ich das Umsetzten ?
Hier mal ein Screen:

Unbenannt.png

Denn das Programm sagt mir bei:
if (ent = m) {
Multiple markers at this line
- The local variable m may not have been
initialized
- Type mismatch: cannot convert from boolean
to char
- Type mismatch: cannot convert from char to
boolean

MFG und Danke :D
 
char geschlecht;

if geschlecht w ...
else ...


so?


bei dir sind m und w 2 variablen vom typ boolean, der true oder false hat.

du müsstest als einmal m auf true setzen und w auf false um männlich zu kriegen.

nimm einen char und prüfe ob dieser m oder w ist.
 
ent ist als char definiert
m und w als boolean

Du vergleichst jetzt ein char mit einem boolean :freak:
 
char geschlecht;

lese char ein;

if (geschlecht == 'm'){...}
für männlich...
else ....



== -> Vergleich
= -> Zuweisung
 
Java gehört zu den einfachsten Sprachen. Somit wirst du mit anderen Sprachen auch keine freude haben. =)
Wo liegt denn noch das Problem? Ist es immernoch die gleiche Fehlermeldung? Hast du mal gespeichert nachdem du das " gegen ' getauscht hast?
 
Poste den aktuellsten Code, ohne dass eine Fehlermeldung Anweisungen verdeckt.
 
Ernsthaft ... ?!
Warum ist das jetzt nur durch das speichern weggegangen ?
Trotzdem Danke :D !!!!
 
FrazeColder schrieb:
Ne .... immer noch nicht ...
Wie ich Java hasse ... -.- hahah

Typisches Layer-8-Problem :D

Die Java-Compiler-Meldungen von Java sind recht aussagekräftig. Man sollte versuchen, diese zu verstehen. Die Lösung wurde hier aber auch schon genannt.
 
Mal mit 'm' statt "m" bzw, 'w' statt "w" probiert?
 
Der Fehler wird mit dem tauschen des Zeichens bereits verschwunden sein und wenn du compiliert hättest, wäre das Programm wohl auch schon gelaufen. Nur wird das nicht immer sofort angezeigt, wenn man etwas ändert. Darum verschwinden solche Meldungen manchmal nur wenn man gespeichert hat. Ich denk das liegt an der IDE, kann mich aber auch irren.
 
Edit: Jemand hat die Lösung schon geschrieben.
 
Mika911 schrieb:
Der Fehler wird mit dem tauschen des Zeichens bereits verschwunden sein und wenn du compiliert hättest, wäre das Programm wohl auch schon gelaufen. Nur wird das nicht immer sofort angezeigt, wenn man etwas ändert.

Eclipse zeigt sofort bzw. mit geringer Verzögerung an, ob eine Datei kompiliert. Ob man speichert oder nicht, spielt keine Rolle, wenn man dieses Feature nicht ausschaltet.


Mika911 schrieb:
Darum verschwinden solche Meldungen manchmal nur wenn man gespeichert hat. Ich denk das liegt an der IDE, kann mich aber auch irren.

Nee, es liegt am Anwender, der (noch) nicht weiß, was er tut. Dauert halt seine Zeit.
 
Nagut, dann ist das halt so. =)
 
Noch eine Frage, wie kann ich in eine if Anweisung sagen:
wenn a = 0 und b = 0 dann mache das... ?

Also wenn mehrere Variablen einen bestimmten Wert haben ?
Und wie zeihe ich die Wurzel in Java ?
 
Zurück
Oben