0 Daumen
708 Aufrufe

Ich möchte ein Programm schreiben, das mir ausgibt, ob eine eingegebene Zahl durch 4 teilbar ist oder nicht. Als kleine "Schwierigkeit" möchte ich dies mit einem Methodenaufruf realisieren. Leider funktioniert das nicht. Kann mir jemand sagen, wo mein Fehler ist? Hier ist mein Code:

public class meinProgramm {
private int methode(int a) {
  if (a % 4 == 0) {
  System.out.printf("%d ist durch 4 teilbar!%n", a);
  } else {
  System.out.printf("%d ist nicht durch 4 teilbar!%n", a);
  }
}

public static void main(String[] args) {
  System.out.println("Bitte geben Sie eine Zahl ein!\n");
  int a = new java.util.Scanner(System.in).nextInt();
  int test = methode(a);
}
}

Über Hilfe würde ich mich freuen.

Avatar von

Was genau ist denn der Fehler? Ich könnte mir vorstellen, dass es daran liegt, dass die Methode nicht static ist.

Danke, genau das war der Fehler! :D

Jetzt funktioniert es! =) Ich habe die Funktion static gemacht und noch das fehlende return a; reingemacht.

public class meinProgramm{
private static int methode(int a){
if(a % 4 == 0){
System.out.printf("%d ist durch 4 teilbar!%n", a);
}else{
System.out.printf("%d ist nicht durch 4 teilbar!%n", a);
} return a;
}

public static void main(String[] args){
System.out.println("Bitte geben Sie eine Zahl ein!\n");
int a = new java.util.Scanner(System.in).nextInt();
int test = methode(a);
}
}

1 Antwort

+2 Daumen
 
Beste Antwort

Du musst die Funktion static definieren. Somit ist sie auch ohne Objekt aufrufbar. Zudem würde ich Dir empfehlen, den Modifier private an dieser Stelle durch public zu ersetzen. Es macht in diesem Fall zwar keinen Unterschied, allerdings spielen die Sichbarkeitsmodifier in größeren Softwareprojekten durchaus eine Rolle! Dein %n ist ebenfalls überflüssig.

Die Zuweisung des Ergebnisses an die Variable int test ist auch nicht nötig, da die Ausgabe direkt in der Funktion methode erfolgt. Wichtig: Das static kennzeichnet eine Funktion (eine Methode ist objektgebunden).

Avatar von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community