initialisieren, obwohl es gemacht wurde! Bitte um Hilfe

CyberFish

Mitglied
Hallo Liebe Community,

ich bin noch ein Frischling wenn es um Java geht. Wir lernen es momentan in der Berufsschule. Wir haben eine Aufgabe bekommen die wir zuhause lösen sollen, soweit so gut. Ich habe damit angefangen und bin soweit wie fertig mit dem Programm, leider verstehe ich nicht warum mir eclipse sagt das eine Wert nicht initialisiert wurde. Hier mein geschriebenes Programm. Es wäre nett wenn mir jemand von euch helfen könnte.
MFG
CyberFish
--------------------------------------------------------------------------
import Tools.IOTools;


public class mehrstufigeAuswahl {

public static void main(String[] args) {
double umsatz;
double Provision;
double Provisionssatz;

umsatz = IOTools.readDouble("umsatz= ");

if(umsatz > 5000){
Provisionssatz = 4.0;
}else{
if(umsatz <= 2500){
Provisionssatz = 3.5;
}else{
if(umsatz<2500){
Provisionssatz = 3.0;
}
}
}

Provision = umsatz * (1 - Provisionssatz/100);
System.out.println(Provision);
}

}


Edit: Provisionssatz wird doch durch = Provisionssatz = 4.0, 3.5 und 3.0 initialisiert oder?
 
Zuletzt bearbeitet:
Erst einmal Danke für das Kompliment 🙂 und Danke für die schnelle Hilfe dein Link und deine Erklärung hat mir geholfen 🙂 Problem ist beseitigt und mein Programm funktioniert :toll:

Edit: @Gucky wird gemacht 😉
 
Zuletzt bearbeitet:
Nur aus Neugier: Für welche Lösung hast du dich entschieden? Im verlinkten Beitrag gab es ja auch Gegenmeinungen zu meinem Vorschlag.

Hast du nun den Provisionssatz mit 0 initialisiert oder den Hinweis des Compilers als Anlass genommen, deinen Code genauer anzuschauen, den Einwand von stg dabei verstanden und nun einen weiteren Fall eingebaut, sodass Provisionssatz beim Anlegen uninitialisiert bleiben kann?
 
Also hier erstmal den bearbeiteten Code. Ich habe es so umgestellt das der Java-Compiler erkennt, dass ich alle Fälle abgedeckt habe.


Java:
import Tools.IOTools;


public class mehrstufigeAuswahl {

	public static void main(String[] args) {
		double umsatz;
		double Provision;
		double Provisionssatz;
		
		umsatz = IOTools.readDouble("umsatz= ");
		
		if(umsatz > 5000){
			Provisionssatz = 4.0;
		}else{
			if(umsatz <= 2500){
				Provisionssatz = 3.5;
			}else{
					Provisionssatz = 3.0;
				
			}
		}
			
		Provision = umsatz * (1 - Provisionssatz/100); 
		System.out.println(Provision);			
	}
	
}
 
Perfekt umgesetzt, vielen Dank 🙂 Damit kann ich deinen Beitrag als Beispiel nutzen, warum es eine schlechte Idee ist, Variablen vor der eigentichen Verwendung mit irgendwelchen Werten zu initialisieren.. dann hättest du den nicht abgedeckten Bereich nämlich gar nicht bemerkt. So hat dir der Compiler das gezeigt.
 

Zurück
Oben