Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

If-Anweisung Java
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> If-Anweisung Java
 
Autor Nachricht
Lup
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 02.03.2010
Beiträge: 10

BeitragVerfasst am: 28 März 2010 - 21:10:02    Titel: If-Anweisung Java

Hallo.
Ich lerne gerade mit dem Programm Java für eine Prüfung und habe ein Programm geschrieben, das aber nicht die richtige Lösung anzeigt. Ich weiß aber nicht, was mein Fehler ist und wollte wissen, ob ihr mir helfen könntet.
Das Programm soll mit einer if-Anweisung geschrieben werden und die Bedingung soll vom Typ boolean sein. Wenn ich das Programm aber starte und z.B. eine 4 eingebe dann gibt er trotzdem aus, dass die zahl durch 3 teilbar ist.
Danke an alle, die mir helfen können.


import java.util.Scanner;

class Teilbarkeit {
public static void main (String [] args) {
Scanner scanner = new Scanner (System.in);
System.out.println ("Bitte geben Sie eine Zahl ein ");
int x = scanner.nextInt ();
int a = x % 3;
boolean z = a==0;
if (z = true ) {
System.out.println ("Die Zahl ist durch 3 teilbar ");}
else {{System.out.println ("Die Zahl ist NICHT durch 3 teilbar") ;}
}
}
}
just_phil
Senior Member
Benutzer-Profile anzeigen
Senior Member


Anmeldungsdatum: 23.08.2008
Beiträge: 1006

BeitragVerfasst am: 28 März 2010 - 21:46:31    Titel: Re: If-Anweisung Java

Hier sitzt der Fehler:
Code:
if (z = true ) { ... }
Du benutzt anstatt des Vergleichsoperators "==" den Zuweisungsoperator "=". Eine Zuweisung wird immer als "true" ausgewertet, deshalb stimmt Dein Ergebnis nicht. Einfach ändern, dann klappt's.

Ich würde an Deiner Stelle übrigens Ausdrücke wie
Code:
boolean z = a==0;
vermeiden, manchmal werden Operatoren in einer bestimmten Reihenfolge abgearbeitet (die in Java nicht immer 100% konsistent ist), die gar nicht auf den ersten Blick erkennbar ist. Außerdem binden einige Operatoren stärker als andere, solche Ausdrücke können ziemlich fehlerträchtig sein. Ein oder zwei Zeilen mehr und dafür erhöhte Verständlichkeit können im Nachhinein Zeit und Nerven sparen. Smile
Lup
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 02.03.2010
Beiträge: 10

BeitragVerfasst am: 28 März 2010 - 22:50:31    Titel:

Alles klar. Super. Dankeschön.
Jetzt klappt es auch. Was für ein blöder Fehler.
endure
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 29.03.2010
Beiträge: 18

BeitragVerfasst am: 29 März 2010 - 16:53:50    Titel:

bei boolean (z=a)==... machen dann geht's vollkommen glatt.
Paga
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 19.11.2008
Beiträge: 155

BeitragVerfasst am: 29 März 2010 - 17:39:55    Titel:

nur mal noch ein kleiner tipp: der vergleich

z == true

ist überflüssig, es genügt zu schreiben

if (z) { ...

denn wenn z wahr ist, ist ja auch (z == true), eben weil z ja wahr (true) ist. ist z falsch, so ist auch (z == true) falsch, weil ja (false == true) nicht stimmt.
viel kürzer wäre es natürlich gleich zu schreiben

if (x%3 == 0) {
Lup
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 02.03.2010
Beiträge: 10

BeitragVerfasst am: 29 März 2010 - 20:06:39    Titel:

Ja stimmt. Danke.
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> If-Anweisung Java
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum