Lukullus Geschrieben 14. März 2009 Geschrieben 14. März 2009 (bearbeitet) Hallo! ich soll für die Schule ein Notenberechnungsprogramm erstellen. nur leider funktioniert die Überprüfung der Eingabe nicht so 100%ig. Wenn keine Eingabe gemacht wird soll eine Entsprechende Meldung ausgegeben werden. Hier mal der Programm anfang public static void main(String[] args) { //Ungenügende Eingaben if (args[0] = 0) {System.out.println("Die eingegeben Werte reichen nicht aus. Programmneustart und ergaenzte Werte koennten das Problem beheben!");} else if (args[1] = 0) {System.out.println("Die eingegeben Werte reichen nicht aus. Programmneustart und ergaenzte Werte koennten das Problem beheben!");} und so weiter. Der Compiler schmeißt mir folgendes aus: Noten.java:6: incompatible types found : int required: java.lang.String if (args[0] = 0) ^ Noten.java:6: incompatible types found : java.lang.String required: boolean if (args[0] = 0) ^ Noten.java:8: incompatible types found : int required: java.lang.String else if (args[1] = 0) ^ Noten.java:8: incompatible types found : java.lang.String required: boolean else if (args[1] = 0) ^ Weiss jemand Rat wie das Problem besser gelöst werden kann? Wenn ich ==0 benutze kommt die meldung Incomparable Types... Bearbeitet 14. März 2009 von Lukullus Zitieren
robotto7831a Geschrieben 14. März 2009 Geschrieben 14. März 2009 Hallo, Du versuchst String mit einem Int zu vergleichen. Das geht so nicht. Versuch es mal so. Wobei ich mir nicht ganz sicher bin. if (args[0].equals("")) [/code] Frank Zitieren
flashpixx Geschrieben 14. März 2009 Geschrieben 14. März 2009 Ihr geht davon aus, dass args != null ist, was ist, wenn keine Parametereingabe gemacht wurde? Generell würde ich überprüfen, ob das Stringarray != null ist, sowie wie viele Elemente vorhanden sind, bevor ich darauf zugreife Phil Zitieren
VaNaTiC Geschrieben 16. März 2009 Geschrieben 16. März 2009 Mir ist aufgefallen, dass Du eine Zuweisung in einer IF-Sequenz machst. Ich vermute Du wolltest aber tatsächlich nur vergleichen. Der Vergleichsoperator in Java ist == Zuweisungsoperator ist = Aber gerade bei Strings scheiden sich die Geister wie man vergleichen sollte! Ich kann nur empfehlen, wie robotto7831a schon sagte, Dir den Vergleich von Objekten mittels equals() anzusehen. Für Strings gibts dann noch so Feinheiten, wie startsWith(), endsWith, equalsIgnoreCase() Und vorallem gewöhn Dir an, wie flashpixx schon sagte, Array's auf legalen Zugriff zu testen. Exceptions die vermieden werden können, sollten das auch! Typisch ist z.B.: if ( args != null // prinzipiell instanziiert && args.length > 0 // mindestens ein Element enthalten && args[0] != null ) // Ja, auch ein Element kann null sein! int i = Integer.parseInt(args[0]); Zitieren
Lukullus Geschrieben 17. März 2009 Autor Geschrieben 17. März 2009 if (args[0].equals("")) funktioniert schon mal leider nicht. Den Tipp von Vanatic probier ich heute abend mal aus. Zitieren
VaNaTiC Geschrieben 17. März 2009 Geschrieben 17. März 2009 if (args[0].equals("")) funktioniert schon mal leider nicht. Freilich nicht, denn das sollte nur ein Beispiel sein, wie man mittels equals() vergleicht. In Deinem Kontext korrekt wäre wahrscheinlich eine Abfrage nach der Anzahl der übergebenen Parameter in args richtig. Prinzipiell ist aber völlig egal, was in einem zweidimensionalen Array drin steht. Wichtig ist nur, dass man beim direkten Zugriff über Array-Index erst die vordere und dann die zweite Dimension auf legalen Zugriff im Bereich testet. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.