Announcement

Collapse
No announcement yet.

Variablen-Durcheinander....

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Variablen-Durcheinander....

    Hallöchen!

    Ich hab mal wieder die Vorlesung geschwänzt....

    Mein Problem ist folgendes:

    Innerhalb einer static Methode wurde einem Array M2 das Array M1 zugewiesen, M2 = M1 (beide Arrays wurden schon in der main-Methode deklariert und mit Anfangswerten ausgestattet). Danach wurde M2 verändert.
    Wenn nun M1 ausgegeben wird, zeigt es seltsamerweise dieselben Veränderungen wie M2....HÄH???

    Außerhalb dieser Methode, also in der main-Methode, hat M2 wieder die Anfangswerte, M1 jedoch hat die Veränderungen beibehalten...HÄH?

    Kann mir jemand erklären wie das kommt?

    So sieht der Quelltext aus:

    import java.io.*;
    public class S16
    { public static void main (String[] arg)
    { int[] v = {1,2,3};
    int[][] m1 = {{10,11,12},{13,14,15}},
    m2 = {{-10,-11,-12},{-13,-14,-15}};
    int a = 100, b = 200;

    xxx(v, m1, m2, a, b);

    System.out.print("\nPosition 7 : "+a+","+b);

    System.out.print("\nPosition 8 : ");
    for (int i=0; i<v.length; i++)
    System.out.print(v[i]+",");

    System.out.print("\nPosition 9 : ");
    for (int i=0; i<m1.length; i++)
    for (int j=0; j<m1[i].length; j++)
    System.out.print(m1[i][j]+",");

    System.out.print("\nPosition 10 :");
    for (int i=0; i<m2.length; i++)
    for (int j=0; j<m2[i].length; j++)
    System.out.print(m2[i][j]+",");
    }

    static void xxx (int[] f, int[][] M1, int [][] M2, int a, int b)
    { M2 = M1;

    System.out.print("\nPosition 1 : ");
    for (int i=0; i<M2[0].length; i++)
    System.out.print(M2[0][i]+",");

    M2[1][1] = 0;

    System.out.print("\nPosition 2 : ");
    for (int i=0; i<M1[0].length; i++)
    System.out.print(M1[1][i]+",");

    M2[0] = f;

    System.out.print("\nPosition 3 : ");
    for (int i=0; i<M1[0].length; i++)
    System.out.print(M1[0][i]+",");

    for (int i=0; i<M2[0].length; i++)
    M2[0][i] = 20+i;

    System.out.print("\nPosition 4 : ");
    for (int i=0; i<M1[0].length; i++)
    System.out.print(M1[0][i]+",");

    System.out.print("\nPosition 5 : ");
    for (int i=0; i<f.length; i++)
    System.out.print(f[i]+",");

    a = a+1;
    b = b+1;

    System.out.print("\nPosition 6 : "+a+","+b);
    }
    }

    (Wieso wird eigentlich die Formatierung nicht korrekt dargestellt...?)

  • #2
    Hi, um die Formatierung richtig dar zu stellen kannst Du den Quelltext in das HTML-Tag < pre > einfassen

    Comment


    • #3
      Du wirst doch nicht glauben dass dir hier jemand hilft nur weil du
      zu faul bist in die Vorlesung zu gehen HÄH

      Comment

      Working...
      X