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
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
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
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]);
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.
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden