Zum Inhalt springen

Empfohlene Beiträge

Geschrieben (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 von Lukullus
Geschrieben

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

Geschrieben

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() :D

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]);

Geschrieben
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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...