Hallo Leute, ich habe ein Programm ( Hausaufgabe ) erstellt und es macht, was es soll
Aber ...
Kann man den Code nicht irgendwie kürzen? Ich wiederhole mich sehr oft, zB oft den gleichen System.out.printl Text...
Fällt euch sonst noch was auf, wie man das ganze "optimieren" könnte? Super wäre es, wenn ihr den Code gleich mit rein schreibt, ich lerne einfacher und besser, wenn ich es sehe und dann auf ein andere Bsp anwende.
Vielen Dank
Aber ...
Kann man den Code nicht irgendwie kürzen? Ich wiederhole mich sehr oft, zB oft den gleichen System.out.printl Text...
Fällt euch sonst noch was auf, wie man das ganze "optimieren" könnte? Super wäre es, wenn ihr den Code gleich mit rein schreibt, ich lerne einfacher und besser, wenn ich es sehe und dann auf ein andere Bsp anwende.
Vielen Dank
Java:
public class Bsp03 {
static double flaeche;
static final double PI = 3.141592653589793;
static boolean leapYear;
public static void main(String[] args) {
int inMenue;
int year;
int n;
double inRadius;
System.out.println ("Please choose calculation");
System.out.println ("1. Calculate circle area");
System.out.println ("2. Leap year calculation");
System.out.println ("3. Calculate next N leap years");
System.out.println ("0. Exit");
inMenue = SavitchIn.readLineInt();
while ( inMenue != 0 ) {
if ( inMenue < 0 || inMenue > 3 ) { // Eingabe wird ueberprueft
System.out.println ("Invalid choice!");
System.out.println ();
System.out.println ("Please choose calculation");
System.out.println ("1. Calculate circle area");
System.out.println ("2. Leap year calculation");
System.out.println ("3. Calculate next N leap years");
System.out.println ("0. Exit");
inMenue = SavitchIn.readLineInt();
}
if ( inMenue == 1 ) {
System.out.println ("Please enter circle radius:");
inRadius = SavitchIn.readLineDouble();
getCircleArea(inRadius);
System.out.println ("Circle area is: " + flaeche);
System.out.println ();
System.out.println ("Please choose calculation");
System.out.println ("1. Calculate circle area");
System.out.println ("2. Leap year calculation");
System.out.println ("3. Calculate next N leap years");
System.out.println ("0. Exit");
inMenue = SavitchIn.readLineInt();
}
if ( inMenue == 2 ) {
System.out.println ("Please enter year:");
year = SavitchIn.readLineInt();
isLeapYear(year);
if ( leapYear == true ) {
System.out.println ( year + " is a leap year");
}
else {
System.out.println ( year + " is not a leap year");
}
System.out.println ();
System.out.println ("Please choose calculation");
System.out.println ("1. Calculate circle area");
System.out.println ("2. Leap year calculation");
System.out.println ("3. Calculate next N leap years");
System.out.println ("0. Exit");
inMenue = SavitchIn.readLineInt();
}
if ( inMenue == 3 ) {
System.out.println ("Please enter year:");
year = SavitchIn.readLineInt();
System.out.println ("How many leap years should be calculated:");
n = SavitchIn.readLineInt();
getNextLeapYears(year, n);
System.out.println ();
System.out.println ();
System.out.println ("Please choose calculation");
System.out.println ("1. Calculate circle area");
System.out.println ("2. Leap year calculation");
System.out.println ("3. Calculate next N leap years");
System.out.println ("0. Exit");
inMenue = SavitchIn.readLineInt();
}
}
}
// Methoden
public static double getCircleArea (double radius) {
flaeche = PI * radius * radius;
return flaeche;
}
public static boolean isLeapYear(int year) {
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
leapYear = true;
}
else {
leapYear = false;
}
return leapYear;
}
public static void getNextLeapYears(int year, int n) {
int i = 0;
while (i < n) {
isLeapYear(year);
if (leapYear == true) {
System.out.print ( year + " ");
i++;
}
year++;
}
}
}