Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

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

if (args[0].equals(""))

funktioniert schon mal leider nicht.

Den Tipp von Vanatic probier ich heute abend mal aus.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.