Veröffentlicht 14. März 200916 j 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 200916 j von Lukullus
14. März 200916 j 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
14. März 200916 j 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
16. März 200916 j 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]);
17. März 200916 j if (args[0].equals("")) funktioniert schon mal leider nicht. Den Tipp von Vanatic probier ich heute abend mal aus.
17. März 200916 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.