Pruefen ob Kommandozeilenparameter ein Int ist

fischldi

Mitglied
Hallo Community!

Ich habe mein Programm fast fertig, nur eine Sache fehlt mir. Mein Programm soll alle Kommandozeilenparameter auf Int überprüfen und wenn eines der Argumente kein Int ist, das Programm beenden.
Ich probiere schon ewig rum...nur fehlt mir der entscheidende Gedankenblitz...habe Ihr ne Idee?

Java:
public class MinMaxMean {
    public static void main(String[] args) {
    int anzahl = args.length;
    int summe = 0;
    int summand = 0;
    double mittel = 0;
    int min;
    int max;
    boolean sorted = false;
 

	if(args.length < 1) // wenn kein Argument uebergeben wurde,dann Fehler!
	System.out.println("Fehler!");
	
for (int i = 0; i < args.length; i++)
{
//sinngemaess wenn arg[i] kein Int ist, dann gebe Fehler aus und beende Programm
}
	
	else
	{
    for (int i = 0; i < args.length; i++) {
        summand = Integer.parseInt(args[i]);
        summe = summe + summand;
    }
 
    mittel = summe / anzahl;
    for (int i = args.length - 1; i > 0 && !sorted; i--) {
        sorted = true;
        for (int j = 0; j < i; j++) {
        if (Integer.parseInt(args[j]) > Integer.parseInt(args[j + 1])) {
            sorted = false;
            String temp = args[j];
            args[j] = args[j + 1];
            args[j + 1] = temp;
        }
        }
    }
 
	System.out.println("Min : "+args[0]);
	System.out.println("Max : "+args[anzahl-1]);
    System.out.println("Die Summe ist ... " + summe);
    System.out.println("Das arithmetische Mittel ist ... " + mittel);
	}
	

}
}

Caro
 

fischldi

Mitglied
Wenn ich das so mache,bekomme ich folgenden Fehler:

"MinMaxMean.java:61: class, interface, or enum expected
try {
^
MinMaxMean.java:62: class, interface, or enum expected
010 for (base = 10; base >= 2; --base) {
^
MinMaxMean.java:62: class, interface, or enum expected
010 for (base = 10; base >= 2; --base) {
^
MinMaxMean.java:64: class, interface, or enum expected
012 System.out.println("40 base "+base+" = "+i);
^
MinMaxMean.java:65: class, interface, or enum expected
013 }
^
MinMaxMean.java:70: class, interface, or enum expected
018 }
^
6 errors
"

Quelltext:
Java:
import java.lang.Integer;
import java.util.Scanner; 

public class MinMaxMean {
    public static void main(String[] args) {
    int anzahl = args.length;
    int summe = 0;
    int summand = 0;
    double mittel = 0;
    int min;
    int max;
    boolean sorted = false;
 

	if(args.length < 1) // wenn kein Argument uebergeben wurde,dann Fehler!
	System.out.println("Fehler!");
	
	else
	{
	try {
    for (int i = 0; i < args.length; i++) {
        summand = Integer.parseInt(args[i]);
        summe = summe + summand;
    }
		}
		catch (NumberFormatException nfe)
		{
		System.out.println("Mindestens 1 Argument ist kein Int!");
		return;
		}
		
    mittel = summe / anzahl;
    for (int i = args.length - 1; i > 0 && !sorted; i--) {
        sorted = true;
        for (int j = 0; j < i; j++) {
        if (Integer.parseInt(args[j]) > Integer.parseInt(args[j + 1])) {
            sorted = false;
            String temp = args[j];
            args[j] = args[j + 1];
            args[j + 1] = temp;
        }
        }
    }
 
	System.out.println("Min : "+args[0]);
	System.out.println("Max : "+args[anzahl-1]);
    System.out.println("Die Summe ist ... " + summe);
    System.out.println("Das arithmetische Mittel ist ... " + mittel);
	}
	

}
}
 

eRaaaa

Top Contributor
Wenn ich das so mache,bekomme ich folgenden Fehler:

"MinMaxMean.java:61: class, interface, or enum expected
try {
^
MinMaxMean.java:62: class, interface, or enum expected
010 for (base = 10; base >= 2; --base) {
^
MinMaxMean.java:62: class, interface, or enum expected
010 for (base = 10; base >= 2; --base) {
^
MinMaxMean.java:64: class, interface, or enum expected
012 System.out.println("40 base "+base+" = "+i);
^
MinMaxMean.java:65: class, interface, or enum expected
013 }
^
MinMaxMean.java:70: class, interface, or enum expected
018 }
^
6 errors
"

Dein geposteter Code funktioniert bei mir ohne Probleme! Der Code zeigt ja auch nur 53 Zeilen..?!?! Und eine for-Schleife mit base usw. sehe ich auch nicht...?!
 

eRaaaa

Top Contributor
Das erklärt dennoch nicht die Fehlermeldung, denn die genannte Schleife gibts in deinem geposteten Code ja gar nicht und wie schon gesagt: bei mir läuft dein Code !

Benutzt du eine IDE? Vllt benutzt die noch alte class-Dateien oder so?! Mal speichern/clean/neustarten ausprobiert? :D
Ansonsten poste doch mal deinen kompletten Code!:autsch:
 

Ähnliche Java Themen


Oben