Java Anfänger Programm Problem mit Variable

...komplette Frage anzeigen

5 Antworten

In der Mathematik habe ich gelernt, dass eine Multiplikation so aussieht: Multiplikator * Multiplikant = Produkt.

Als Funktion in Programmiersprachen sollte dies dann so aussehen:

int produkt intMultiplikation(int multiplikator, int multiplikant){

return multiplikator * multiplikant;
}
  1. Du mußt deine Variable nicht löschen
  2. Die Variable ist sinnvoller benannt und du kannst bei der Fehlersuche besser feststellen, welche Variable einen falschen Wert hat. Außerdem habe ich die Funktion „intMultiplikation“ benannt, damit du auch floats oder doubles multiplizieren kannst. Bei einer Division müsstst du vor der Division prüfen, ob der Divident nicht null ist, sonst stürzt das Programm ab …
  3. Diese Funktion kannst du in einer doppelten for-Schleife einsetzen und jeweils zunächst den Multiplikator und danach den Multiplikanden um 1 erhöhen …

Hier gibt es weitere Tipps: http://www.gutefrage.net/tipp/programmiersprachen-lernen

Ich habe zwar keine Java-Kenntnisse, aber warum rufst du die "Rechnen()"-Methode / -Funktion mehrmals ohne Parameter auf? Ich kann mir nicht vorstellen, dass das sinnvoll ist, vor allem bevor du die Methode/Funktion überhaupt definiert hast.

Die Variable ist auch so definiert, dass sie nicht ihren Wert behält. Müßte sie dafür nicht eher public sein? Ich kenne nur ein bißchen C++, aber für mich sieht das komisch aus.

Ich bin auch noch Anfänger und will hier auch nicht darauf eingehen, dass ich diese Aufgabe anders gelöst hätte oder was ich sonst noch ändern würde.
Du schreibst:

ich weiß aber nicht wo man sonst a=0 hinschreiben könnte

Ich hätte da schon eine Idee:

public class eins 
{
    static int a=0;
    public static void main(String[] args) 
    {
        Rechnen();
        Rechnen();
        Rechnen();
        Rechnen();
        Rechnen();
        Rechnen();
        Rechnen();
        Rechnen();
        Rechnen();
        Rechnen();

    }
    public static void Rechnen()
    {
        //int a;
        //a=0;
        a = a + 1;
        int b; 
        b=1;
        do
        {
        int Zahl=a+b;
        System.out.println(a+" + "+b+" = "+Zahl);
        b = b+1;
        } while(b<11);
    }

}

So, indem Du aus der lokalen Variablen a eine Instanzvariable machst, sieht das Ergebnis imho schon besser aus.

Kannst Du schon Parameter übergeben? Damit würde man das tun, also

Rechnen(1); Rechnen(2); ....

Ansonsten zieh die Variable aus "Rechnen()" raus und mach daraus ein static int .

Du kannst z.B. einen Parameter hinzufügen:

private static void calculate(int number) {
    int count = 1;
    do {
        int result = number + count;
        System.out.println(number + " + " + count + " = " + result);
        count++;
    } while (count <= 10);
}

public static void main(String[] args) {
    for (int i = 1; i <= 10; i++) {
        calculate(i);
    }
}

Was das ganze tut:

Die calculate()-Methode bekommt einen Parameter (einen Integer mit dem Namen "number"). Dann wird duch eine Schleife durchgelaufen und dasselbe wie bei Dir getan: Die erste Nummer wird mit der zweiten addiert und das ganze als String ausgegeben. In der main()-Methode wird die calculate()-Methode zehn mal mit jeweils einem anderen Parameter durchlaufen.

Was möchtest Du wissen?