Hellas !
Bin Java Anfänger und hab ein Problem mit einem Berechnungsprogramm.
Das Programm berechnet (nach diversen Abfragen) einen Wert in verschiedenen Methoden, welcher am Ende als Variable in einer weiteren Berechnung verwendet werden soll.
Jetzt hab ich das Problem, dass der erste Werd (Flächenträgheitsmoment) zwar berechnet wird, ich diesen in der Schleife auch initialisiert habe, aber wenn ich im nächsten Schritt in die Variable für eine weitere Berechnung, welche ebenfalls in einer Methode stattfindet, ich die Meldung bekomme, dass die Variable nicht initialisiert ist. Hab es auch schon ohne Methode probiert, selbes Problem:
"Uncompilable source code - variable f might not have been initialized"
Wie bekomme ich die Variable in der Main wieder initialisiert mit dem Wert der vorher berechnet wurde ?
Suche schon seit drei Stunden im Internet nach Lösungen, hab auch einiges ausprobiert (globale Variablen, return,..), aber weiß leider nicht weiter. :bahnhof:
Hat jemand eine Idee ?
Hier der Code
Bin Java Anfänger und hab ein Problem mit einem Berechnungsprogramm.
Das Programm berechnet (nach diversen Abfragen) einen Wert in verschiedenen Methoden, welcher am Ende als Variable in einer weiteren Berechnung verwendet werden soll.
Jetzt hab ich das Problem, dass der erste Werd (Flächenträgheitsmoment) zwar berechnet wird, ich diesen in der Schleife auch initialisiert habe, aber wenn ich im nächsten Schritt in die Variable für eine weitere Berechnung, welche ebenfalls in einer Methode stattfindet, ich die Meldung bekomme, dass die Variable nicht initialisiert ist. Hab es auch schon ohne Methode probiert, selbes Problem:
"Uncompilable source code - variable f might not have been initialized"
Wie bekomme ich die Variable in der Main wieder initialisiert mit dem Wert der vorher berechnet wurde ?
Suche schon seit drei Stunden im Internet nach Lösungen, hab auch einiges ausprobiert (globale Variablen, return,..), aber weiß leider nicht weiter. :bahnhof:
Hat jemand eine Idee ?
Hier der Code
Java:
import java.util.Scanner;
public class Aufgabe5_1028797_1 {
public static float qquerschnitt (float a, float l) {
float fmoment = (a*a*a*a)/12;
return fmoment;
}
public static float kquerschnitt (float a, float l) {
float fmoment = ((a*a*a*a)*3,14)/4;
return fmoment;
}
public static float iquerschnitt (float a, float l) {
float fmoment = (10*(a*a*a*a))/144;
return fmoment;
}
public static float beidseitig (float f, float n, float l) {
float biegung = (n*(l*l*l))/(48*210000*f);
return biegung;
}
public static float krag (float f, float n, float l) {
float biegung = (n*(l*l*l))/(3*210000*f);
return biegung;
}
public static void main ( String[] args ) {
Scanner sc = new Scanner(System.in);
System.out.println("Querschnittsform auswählen ")
System.out.println("q....Quadratische Form");
System.out.println("k....Kreisform");
System.out.println("i....I-Träger");
System.out.println();
System.out.print("Auswahl: ");
char m = sc.next().charAt(0);
System.out.println("----------------------");
System.out.print("Geben Sie die Abmessung in mm an: ");
float a = sc.nextInt();
System.out.print("Geben Sie die Länge in mm an: ");
float l = sc.nextInt();
System.out.print("Geben Sie die Kraft in N an: ");
float n = sc.nextInt();
float f;
switch( m ) { //Mehrfachanweisung
case 'q':
System.out.println("Fmoment:" +qquerschnitt(a,l));
f = qquerschnitt(a,l);
break;
case 'k':
System.out.println("Fmoment:" +kquerschnitt(a,l));
f = kquerschnitt(a,l);
break;
case 'i':
System.out.println("Fmoment:" +iquerschnitt(a,l)));
f = iquerschnitt(a,l);
break;
}
System.out.println("----------------------");
System.out.println("Auflagerform auswählen ")
System.out.println("b....Beidseitig gelagert");
System.out.println("k....Kragträger");
System.out.println();
System.out.print("Auswahl: ");
char o = sc.next().charAt(0);
switch( o ) { //Mehrfachanweisung
case 'b':
System.out.println("Maximale Durchbiegung:" +beidseitig(f,n,l));
break;
case 'k':
System.out.println("Maximale Durchbiegung:" +krag(f,n,l));
break;
}
}
Zuletzt bearbeitet von einem Moderator: