If in System.out.println

osion

Bekanntes Mitglied
Hallo :lol:

Ich habe das Problem das
Java:
System.out.println("Das Auto ist " + if(zeit<zeit2){zeit2-=zeit;} else{zeit-=zeit2;} + " zu schnell gefahren.");
ich das nicht machen kann.

Bitte keine Lösungen sondern eher Tipps, da ich erst seid kurzem Java lerne.



Java:
package auto;

public class Auto {
	public int benzienstand = 100;
	public int benzienstand2;
	public int geschwindigkeit = 100;
	public int geschwindigkeit2;
	public int zeit = 60;
	public int zeit2;
	public int geschwindigkeit_;

	public Auto(int benzienstand_, int geschwindigkeit_, int zeit_) {
		benzienstand2 = benzienstand_;
		zeit2 = zeit_;
		geschwindigkeit2 = geschwindigkeit_;
	}

	public void auswertung() 
	{
		System.out.println("Das Auto hat für 100 km " + zeit2 + " min gebraucht");
		System.out.println("Das Auto hat für 100 km " + (benzienstand-benzienstand2) + "Liter gebraucht");
		System.out.println("Das Auto ist " + if(zeit<zeit2){zeit2-=zeit;} else{zeit-=zeit2;} + " zu schnell gefahren.");

	}
}

Fehlermeldung

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Syntax error on token(s), misplaced construct(s)
Syntax error on token "}", ( expected after this token
The left-hand side of an assignment must be a variable
Syntax error, insert "AssignmentOperator Expression" to complete Expression

at auto.Auto.auswertung(Auto.java:22)
at auto.Hauptklasse.main(Hauptklasse.java:15)

Warum kann ich keine IF-Anweisung einfügen? Geht das grundsätzlich nicht?


Danke :applaus:
 

faetzminator

Gesperrter Benutzer
Nein, das geht nicht.
Es gibt aber der ternären Operator:
Java:
"blablubb" + (zeit < zeit2 ? zeit2 - zeit : zeit - zeit2) + "blubb"
 

HimBromBeere

Top Contributor
Naja, überleg doch mal... wenn du was zurückgeben willst, brauchst du eine Methode. if ist aber keine Funktion, sondern ein Statement. Wenn du ´nen Rückgabewert haben willst, such mal nach dem sogenannten ternären Operator...
oder teile deine Ausgabe halt auf i
Java:
if (...) {System.out.println(...);
else System.out.println(...);
 

Spin

Top Contributor
Hallo,

du kannst in Java keine If's mit einem String konkatenieren, da sie keinen Return Type haben. Sie geben nichts zurück.

Es gibt andere Sprache, da redet man von if expresision.
Java:
// scala , like tenärer operator
println("hallo " + {if(1 == 1) "a" else "b"})

grüße spin
 
J

JohannisderKaeufer

Gast
Java:
System.out.println("Das Auto ist " + if(zeit<zeit2){zeit2-=zeit;} else{zeit-=zeit2;} + " zu schnell gefahren.");

In diesem Falle hätte es auch ein
Code:
|zeit-zeit2|
getan.

Java:
System.out.println("Das Auto ist " + java.lang.Math.abs(zeit-zeit2) + " zu schnell gefahren.");
 

osion

Bekanntes Mitglied
hallo :D

Der code hat gar nicht richtig gerechnet...nicht so schlimm...habe ich jetzt korrigiert :lol: im ernst :lol:

Der Tipp mit den ternäre Operator war sehr hilfreich danke :applaus:


Ich habe noch eine andere Frage. Es geht um die gleiche Übung, aber um die Hauptklasse.

Java:
package auto;

import java.util.Scanner;

public class Hauptklasse {

	public static void main(String[] args) {

		Scanner eingabe = new Scanner(System.in);

		int anzahlDim = 10;
		int anzahl = 1;

		System.out.println("Wieviele Autos sollen berechnet werden?");
		anzahlDim = eingabe.nextInt();
		anzahlDim++;

		Auto autos[] = new Auto[anzahlDim];

		for (int i = 0; i < autos.length; i++) {
			autos[i] = new Auto(
					(int) ((Math.random() * 100)),
					(int) ((Math.random() * 100)));
		}

		for (int i = 1; i < anzahlDim; i++) {
			System.out.println(anzahl + ". Auto");
			autos[i].auswertung();
			anzahl++;
		}
	}
}

Der Teil:

Java:
for (int i = 1; i < anzahlDim; i++) {
			System.out.println(anzahl + ". Auto");
			autos[i].auswertung();
			anzahl++;

ganz genau:

Java:
System.out.println(anzahl + ". Auto");
			autos[i].auswertung();

Kann ich System.out.....mit autos.auswertung() verbinden? ???:L


gruss :lol:
 

Master1991

Mitglied
Hey,

ich glaube da ist mehr als nur ein Fehler drin:


Java:
		System.out.println("Wieviele Autos sollen berechnet werden?");
		anzahlDim = eingabe.nextInt();
		anzahlDim++;

warum rechnest du anzahlDim++? Rein logisch betrachtet passt das nicht zu deinem Input befehl:
Ein Array mit 5 Elementen läuft von Index 0-4. beeinhaltet also trotz das es bei 0 anfängt 5 Elemente.
Bei deiner Rechnung wird dein Array immer 1 grösser als Eingegeben wurde, ist das gewollt?

Ansonsten kommt es bei

Java:
for (int i = 1; i < anzahlDim; i++) {
            System.out.println(anzahl + ". Auto");
            autos[i].auswertung();
            anzahl++;
        }

auf den Rückgabewert der Methode Auswertung an, wenn es sich um einen String handelt kannst du ihn auch bei System.out mit unterbringen. Mir fällt hier gerade auf das du bei i=1 anfängst zu zählen. Ich nehm also mal an das mit dem Array von oben war tatsächlich gewollt.

Java:
for (int i = 1; i < anzahlDim; i++) {
            System.out.println(i + ". Auto" + autos[i].auswertung());
            // Ich habe "anzahl" durch i ersetzt, da du in deiner main Methode die variable anzahl  überhaupt nicht benutzt ausser in der Ausgabeschleife und der Wert identisch mit i ist;)
        }


EDIT// Bei der Erzeugung der Autos hingegen fängst du mit Laufindex 0 an. Du Erzeugst ein Auto im Index 0 was du nie Ausgibst da du in der Ausgabe erst bei 1 anfängt, ist dir das bewusst?
 
Zuletzt bearbeitet:

osion

Bekanntes Mitglied
EDIT// Bei der Erzeugung der Autos hingegen fängst du mit Laufindex 0 an. Du Erzeugst ein Auto im Index 0 was du nie Ausgibst da du in der Ausgabe erst bei 1 anfängt, ist dir das bewusst?

Ja, war ein denkfehler ^^ in der letzten Aufgabe sollte ich Array 0/0 nicht ausgeben.

In der Klasse Auto (code weiter unten), habe ich das Problem dass er mir nicht die ganze Ausgabe gibt, falls die Variable Zeit2 (wie lange braucht das Auto für 100 km), grösser ist als Zeit (was wäre zulässig).

Die Ausgabe sieht dann so aus:

1. Auto
Variable:Zeit47.0
Das Auto hat für 100 km 47.0 min gebraucht.
Das Auto hat für 100 km 55 Liter verbraucht.
Das Auto ist 27
Variable:Zeit47.0

Aber ist Zeit2 grösser als Zeit so geht alles ganz normal. Ich habe den Debugger gestartet und festgestellt, dass er einfach den Rest überspring

Das Auto ist 28 km zu schnell gefahren.

Variable:Zeit84.0

Ich glaube entweder hat es mit (int) zu tun oder mit den Klammern, aber es ist nicht möglich zu sehen wie er die Klammer auflöst und ein Fehler vom Programm gibt es auch nicht.

Java:
package auto;

public class Auto {
	public int benzienstand = 100;
	public int benzienstand2;
	public double geschwindigkeit = 100.00;
	public double zeit = 60.00;
	public double zeit2;

	public Auto(int benzienstand_, int zeit_) {
		benzienstand2 = benzienstand_;
		zeit2 = zeit_;
	}

	public void auswertung() {
		System.out.println("Variable:Zeit"+zeit2);
		System.out.println("Das Auto hat für 100 km " + zeit2
				+ " min gebraucht.");
		System.out.println("Das Auto hat für 100 km "
				+ (benzienstand - benzienstand2) + " Liter verbraucht.");
		System.out
				.printf("Das Auto ist "
						+ ((zeit > zeit2) ? (int) ((100/( (zeit2 / 60)))-geschwindigkeit) : ((int) (geschwindigkeit-(100/((zeit2 / 60)))))
						+ " km"
						+ ((zeit < zeit2) ? " zu schnell " : " längsamer als  erlaubt ") + "gefahren.\n\n"));
		System.out.println("\nVariable:Zeit 2 "+zeit2+ "\n\n");
	}
}

Genauer:

Java:
		+ (benzienstand - benzienstand2) + " Liter verbraucht.");
		System.out
				.printf("Das Auto ist "
						+ ((zeit > zeit2) ? (int) ((100/( (zeit2 / 60)))-geschwindigkeit) : ((int) (geschwindigkeit-(100/((zeit2 / 60)))))
						+ " km"
						+ ((zeit < zeit2) ? " zu schnell " : " längsamer als  erlaubt ") + "gefahren.\n\n"));
 
Zuletzt bearbeitet:

suckerpunch

Neues Mitglied
Prüfe mal deine "()" Setzung dann kommst auch auf das richtige raus, würde da eh bei sovielen Klammern auf varibalen zurückgreifen

Java:
            int schnell = (int) Math.round((100 / (zeit2/60)) - geschwindigkeit);
            int langsam =  (int) Math.round(geschwindigkeit - (100 / (zeit2 / 60)));
            System.out.printf("Das Auto ist "
                    + (zeit > zeit2 ?  schnell : langsam)
                    + " km"
                    + (zeit < zeit2 ? " zu schnell " : " längsamer als  erlaubt ") + "gefahren.\n\n");

EDIT: Kannst auch gleich anstatt überall double float benutzen wenn du den double adressraum nicht brauchst das würde auch das cast auf int ersparen im fall von Math.round :rtfm:
 

osion

Bekanntes Mitglied
Prüfe mal deine "()" Setzung dann kommst auch auf das richtige raus, würde da eh bei sovielen Klammern auf varibalen zurückgreifen

Java:
            int schnell = (int) Math.round((100 / (zeit2/60)) - geschwindigkeit);
            int langsam =  (int) Math.round(geschwindigkeit - (100 / (zeit2 / 60)));
            System.out.printf("Das Auto ist "
                    + (zeit > zeit2 ?  schnell : langsam)
                    + " km"
                    + (zeit < zeit2 ? " zu schnell " : " längsamer als  erlaubt ") + "gefahren.\n\n");

EDIT: Kannst auch gleich anstatt überall double float benutzen wenn du den double adressraum nicht brauchst das würde auch das cast auf int ersparen im fall von Math.round :rtfm:

Danke...habe den Code noch angepasst
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D System.out.println Java Basics - Anfänger-Themen 1
O System.out.println wird nicht ausgegeben? Java Basics - Anfänger-Themen 11
M Keine Ausführung von System.out.println() Java Basics - Anfänger-Themen 3
C System.out.println - Parameterübergabe funktioniert nicht Java Basics - Anfänger-Themen 2
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
H Befehl wird nicht ausgeführt - System.out.println Java Basics - Anfänger-Themen 3
S Anweisungen verstehen System.out.print/println Java Basics - Anfänger-Themen 2
B Warum werden meine System.out.println's übersprungen? Java Basics - Anfänger-Themen 9
R Erste Schritte Eclipse - Java - System.out.println(); funktioniert nicht Java Basics - Anfänger-Themen 2
T System.out.println() Java Basics - Anfänger-Themen 5
R Input/Output Frage zu System.out.println Java Basics - Anfänger-Themen 5
S Input/Output System.out.println - Manipulieren bzw. Alternative..? Java Basics - Anfänger-Themen 2
V System.out.println zu JTextArea Java Basics - Anfänger-Themen 6
V OOP System.out.println(Objekt) Java Basics - Anfänger-Themen 3
D int x in System.out.println(), aber wie? Java Basics - Anfänger-Themen 1
R warum kann System.out.println(..) etwas, was Swing-Elemente Nicht können ? Java Basics - Anfänger-Themen 11
D Ausgabe einer Matrix mit System.out.println Java Basics - Anfänger-Themen 6
R ArrayList - System.out.println nur einmal, statt 10 mal Java Basics - Anfänger-Themen 5
D system.out.println >> JTextArea Java Basics - Anfänger-Themen 1
O Frage zu System.out.println() Java Basics - Anfänger-Themen 1
A System.out.println() - Aufbau Java Basics - Anfänger-Themen 1
D kleines problem bei system.out.println schreibweise Java Basics - Anfänger-Themen 6
J Umgang mit System.out.println() und .print() Java Basics - Anfänger-Themen 6
G classname.System.out.println(); ? Java Basics - Anfänger-Themen 2
lulas[]args Alternative zu System.err.println(); Java Basics - Anfänger-Themen 5
C System.out.println Java Basics - Anfänger-Themen 4
I Input/Output System.out.println formatierung? möglich? Java Basics - Anfänger-Themen 2
D Frage zu System.out.println() Funktion Java Basics - Anfänger-Themen 6
I Zuerst "System.out.println" Java Basics - Anfänger-Themen 3
T Jar-Archive kein System.out.println()?? Java Basics - Anfänger-Themen 5
S Einfaches int Array gibt über System.out.println merkwürden Wert aus Java Basics - Anfänger-Themen 9
K Methode System.out.println() Java Basics - Anfänger-Themen 4
S System.out.println gibt diesen Wert aus: Klasse@f102d3 Java Basics - Anfänger-Themen 3
J System.out.println(. + (found ? "" : "k" Java Basics - Anfänger-Themen 8
C Wie funktioniert System.out.println intern? Java Basics - Anfänger-Themen 3
A System.out.println() lesen Java Basics - Anfänger-Themen 3
L System.out.println() Java Basics - Anfänger-Themen 4
R System.out.println wird nicht angezeigt Java Basics - Anfänger-Themen 3
C System.out.println "abfangen"? Java Basics - Anfänger-Themen 8
G Out.println oder System.out.println Java Basics - Anfänger-Themen 25
M Wo liegt der Quelltext von System.out.println() Java Basics - Anfänger-Themen 3
T System.out.println - Compiler-Fehler Java Basics - Anfänger-Themen 22
C System.out.print oder println ? Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
O System.out array Java Basics - Anfänger-Themen 4
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
C system cannot be resolved Fehler in Eclipse Java Basics - Anfänger-Themen 18
I System.currentTimeMillis() nutzen Java Basics - Anfänger-Themen 2
C System.in.read() Boolsche Werte vergleichen Java Basics - Anfänger-Themen 8
B Input/Output System.out.print mit und ohne "" Java Basics - Anfänger-Themen 5
M System.property persistieren Java Basics - Anfänger-Themen 6
N (Java) Regristrierung und Login System mit einer Datenbank Java Basics - Anfänger-Themen 5
A Input/Output System.out Ausgabe aktualisieren, ohne Konsole vollzuspamen Java Basics - Anfänger-Themen 2
S System.out.printIn("Hello, World!"); Java Basics - Anfänger-Themen 3
A Passwort System Java Basics - Anfänger-Themen 4
N Input/Output System.in funktioniert nicht Java Basics - Anfänger-Themen 4
E Was ist die JRE System Library? Java Basics - Anfänger-Themen 3
J Variablen Komsiche System.in.read() return-value? Java Basics - Anfänger-Themen 3
N System Proxy verwenden Java Basics - Anfänger-Themen 0
C system.out.printf mit streams benutzen Java Basics - Anfänger-Themen 7
L system.print.out geht nicht Java Basics - Anfänger-Themen 11
F System kann die Datei nicht finden Java Basics - Anfänger-Themen 7
M Verwendung von System.exit(0) problematisch? Java Basics - Anfänger-Themen 1
G System.out.printf geht nicht Java Basics - Anfänger-Themen 6
D JDK installieren No JVM could be found on your system. Java Basics - Anfänger-Themen 9
Z System(einstellungen) per Java ändern/Steuern | Betriebssystembezogen Java Basics - Anfänger-Themen 7
M Variablen Ausgabe bei System.out.format? Java Basics - Anfänger-Themen 3
FrankR2 Grundsätzliches Verständnisproblem: Java 32/64-bit; Windows 7/8, 32/64-bit-System Java Basics - Anfänger-Themen 5
W Input/Output System.in.read erzeugt nicht, was ich will Java Basics - Anfänger-Themen 1
C Input/Output System.in.read() gibt nicht -1 zurück? Java Basics - Anfänger-Themen 3
C Kleines Problem mit System.out.print Java Basics - Anfänger-Themen 1
H Einfluss von System.out auf Programm Java Basics - Anfänger-Themen 2
K System.currentTimeMillis() und die Sommerzeit Java Basics - Anfänger-Themen 5
M Wann PATH und wann JAVA_HOME in Windows System 7 setzen? Java Basics - Anfänger-Themen 2
G Thread stoppen mit System.in.read() Java Basics - Anfänger-Themen 13
M CSV-File aus datei system einlesen Java Basics - Anfänger-Themen 3
R Char wird in System.out.print(); nicht ausgegeben Java Basics - Anfänger-Themen 6
T System.out.print : Frage zu Aufbau Java Basics - Anfänger-Themen 4
P Update System Java Basics - Anfänger-Themen 16
T If ; else error on system token delete Java Basics - Anfänger-Themen 5
M System.getProperty("java.vm.version") liefert build-Version Java Basics - Anfänger-Themen 4
J HILFE Benutzen einer Klasse aus JRE System Library Java Basics - Anfänger-Themen 4
T Erste Schritte import java.lang.System.out Java Basics - Anfänger-Themen 4
N Erste Schritte Ausgabe in System.out Java Basics - Anfänger-Themen 13
D Scanner(System.in) Schleife Java Basics - Anfänger-Themen 7
G Input/Output System.in.read & Scanner Java Basics - Anfänger-Themen 2
H System.out umleiten Java Basics - Anfänger-Themen 5
J Erste Schritte System.out.print (Fehlermeldung) Java Basics - Anfänger-Themen 14
C System.out in String schreiben Java Basics - Anfänger-Themen 2
P System - Tage erkennen ( System Time ?) Java Basics - Anfänger-Themen 3
X Eclipse System.out.print fehler Java Basics - Anfänger-Themen 5
K char-int-Addition in System.out.print Java Basics - Anfänger-Themen 3
O Tabelle Formatieren mit system.out.format Java Basics - Anfänger-Themen 11
F System.getProperty("line.separator") funkt. nicht Java Basics - Anfänger-Themen 4
N Erste Schritte System.err und System.out Java Basics - Anfänger-Themen 5
Z System.out.format, Hilfe. Java Basics - Anfänger-Themen 14
R System.exit mit String als Rückgabedatentyp Java Basics - Anfänger-Themen 3
G Input/Output System.err zusätzlich in Datei schreiben Java Basics - Anfänger-Themen 27
A Problem beim Ausführen einer .jar datei auf externen System Java Basics - Anfänger-Themen 5
S Input/Output Neuen InputStream System.in setzen Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben