Problem

Tag zusammen,

also wie auch im unteren Artikel beschreiben steck ich an einer scheintsnicht berecheten Variablen. Pzeit, Pzeit wurde eigentlich in der if Kaskade berechnet, aber sie wird nicht in den nächsten teil übertragen ich weiß nicht warum also erst ma der fehler:

The local variable Pzeit may not have been initialized

also in der variablen ist nichts aber wird ja im oberen teil berechnet siehe code

public class Uebung {

 public static void main(String[] args)
 {
double AB; //Deklariere Arbeitsbeginn
double AE; //Deklariere Arbeitsende
double PD; //Deklariere Pausendauer

double AH; //Deklariere Arbeitstunden
double Amin;//Deklariere Arbeitsminuten

double min;//Deklariere Zwischenvariable für Minuten
double h;//Deklariere Zwischenvariable für stunden
double hend;//Deklariere Zwischenvariable für endstunden
double minend;//Deklariere Zwischenvariable für endminuten
double Pzeit;//Deklariere Zwischenvariable für Pausenzeit

//float y;//Deklariere Hilfsvariable
//float help;//Deklariere Hilfsvariable

AB=(double) 7.3;
AE=(double) 16.3;
PD=60;

if (AB\>24)
{
 System.out.printf("Falsche Eingabe bitte eine Zahl zwischen 0 und 24!!!%n");
 return;
}

if (AE\>24)
{
 System.out.printf("Falsche Eingabe bitte eine Zahl zwischen 0 und 24!!!%n");
 return;
}

AB=AB\*100;
AE=AE\*100;

h=AB/100; //Module division zur Trennung der Stunden und Minuten
min=AB % 100;

hend=AE/100;
minend=AE%100;

AH=hend-h;//Arbeitszeitberechung
Amin=minend-min;

if (Amin =60);

 do 
 {
 Amin=Amin+60;
 AH=AH-1;
 }while (Amin 0)
 {
 Amin=(Amin + Pzeit);//Fehler wird hier angezeigt
 }

 else if(PD\>30)
 {
 Amin=(Amin - Pzeit);//Fehler wird hier angezeigt
 }
System.out.printf("3%n");
System.out.printf("Momentane ergebnisse:%n Amin:%g%n AH: %g%n minend: %g%n min: %g%n",Amin,AH,minend,min);


do 
{
 Amin=Amin-60;
 AH=AH+1;
}while (Amin \>=60);
System.out.printf("4%n");
System.out.printf("Momentane ergebnisse:%n Amin:%g%n AH: %g%n minend: %g%n min: %g%n",Amin,AH,minend,min);
do 
{
 Amin=Amin+60;
 AH=AH-1;
}while (Amin

also wenn man für pzeit dann einen wert einsdetzt kommt das ergebnis und der rest läuft.

Also wieso wird Pzeit als es berechnet wird nicht weiter übertragen?

Hff könnt ihr mir helfen.
da der untere Artikel unübersichtlich wurde hab ich es mal neu angefangen da es auch mit dem eigentlichen Thema nichts mehr zu tun hatte.

Danke im vorraus

Linden

problem gelöst

ich musse Pzeit auch in dem if teil verwenden. also Pzeit = 0 und es funktioniert.

Vielleicht solltest Du Dir nach diesem Erlebnis gleich angewöhnen, Variablen zu initialisieren. Objekte mit null und Primitive mit sinnvollen Werten (oder besser gleich als Objekte verwenden).

Hallo allesamt,

Vielleicht solltest Du Dir nach diesem Erlebnis gleich
angewöhnen, Variablen zu initialisieren. Objekte mit
null und Primitive mit sinnvollen Werten (oder besser
gleich als Objekte verwenden).

richtig. Wichtig ist dabei aber zu wissen, dass Klassenvariablen, Instanzvariablen und Array Komponenten per Standard immer initialisiert sind (mit dem dazugehörigen Defaultwert), während lokale Variablen (so wie hier im Beispiel) grundsätzlich keinen Initialwert haben (nachzulesen in 4.12.5 der Java Language Spec).

Im dort zitierten Beispiel

class Point
{
 static int npoints;
 int x, y;
 Point root;
};

sind nach einem

 Point p = new Point();

die Werte ohne explizite Initialisierung wie folgt

 npoint = 0
 p.x = 0, p.y = 0
 p.root = null

Gruss
norsemanna