Was passiert hier genau in dem Java-Switch Code Befehl?

Hallo Leute,

könnte mir jemand ein bisschen näher erläutern, was in diesem Programm passiert? Vieles habe ich verstanden, aber einiges erscheint mir unlogisch, bzw. ich kann mir nicht erklären, was genau im folgenden geschieht;

Ich habe überall Kommentare eingefügt, wo Ihr mir sagen könnt, ob ich recht habe oder nicht. Vielen dank schon mal !!

 public static void main(String[] args) {
     
    
    int wert = 12;
    System.out.println(wert);
    int ziffern[] = {0,1,2,3}; // Das sind die Arrays, richtig? Also ist in der variable "int ziffern 0,1,2,3 gespeichert?
    int anz_ziffern; //variable deklariert, ohne einen Wert
    boolean minus = false; // Keine Ahnung, warum das macht? der Datentyp kann nur true oder false annehmen, das ist mir bewusst
     
    if(wert<0){ // Wenn der Wert(12) kleiner als 0 ist, mache folgendes
setz die Variable boolean minus, statt false ins true?
      minus = true;
      wert = -1; //Falls der Wert negativ ist, soll man hiermit den Wert positiv machen
    }
     
    anz_ziffern = 0;
    do {
      ziffern[anz_ziffern] = wert%10; // Ich glaube hierbei wird auf die Arrays zugegriffen, oder ? Der Wert soll mit %10 verrechnet werden? was macht genau dieser Befehl?
      wert = (wert - ziffern[anz_ziffern])/10; // Wert minus ziffern, warum?
      anz_ziffern++; // Hier wird der Variable 1 hinzugefügt
    } while (wert>9);
     
    //keine führende Null zulassen (passiert bei Werten<9)
    if(wert>0){
      ziffern[anz_ziffern] = wert; // Hier genauso, ich weiß nicht wirklich was hier passiert
    }else{
      anz_ziffern--;
    }
     
    //Ausgabe der Texte
    if(minus){
      System.out.println("minus");
    }
    for(int i=anz_ziffern; i>=0; i--){ // Oder hier, was passiert hier genau?
      switch(ziffern[i]){
        case 0:
          System.out.println("null");
        break;
         
        case 1:
          System.out.println("eins");
        break;
         
        case 2:
          System.out.println("zwei");
        break;
         
         
      }
    }
  }
}

Auf die Switch-Anweisung braucht ihr nicht eingehen, ich weiß diese funktioniert. Hier sind sozusagen mehrere Fälle, wenn beispielsweise Fall 2 passiert, mache folgendes... mit der Anweisung break, unterbricht man den Fall.

Ich werde den Quellcode noch mal unten als Kommentar sauber posten, damit man was vernünftiges erkennen kann :D

Ich bin jedem dankbar, der mich hier weiterbringen kann!

...zum Beitrag

Hier wie versprochen, der Quellcode:

 public static void main(String[] args) {

     

    

    int wert = 12;

    System.out.println(wert);

    int ziffern[] = {0,1,2,3};

    int anz_ziffern;

    boolean minus = false;

     

    if(wert<0){

      minus = true;

      wert *= -1;

    }

     

    anz_ziffern = 0;

    do {

      ziffern[anz_ziffern] = wert%10;

      wert = (wert - ziffern[anz_ziffern])/10;

      anz_ziffern++;

    } while (wert>9);

     

    if(wert>0){

      ziffern[anz_ziffern] = wert;

    }else{

      anz_ziffern--;

    }

     

   

    if(minus){

      System.out.println("minus");

    }

    for(int i=anz_ziffern; i>=0; i--){

      switch(ziffern[i]){

        case 0:

          System.out.println("null");

        break;

         

        case 1:

          System.out.println("eins");

        break;

         

        case 2:

          System.out.println("zwei");

        break;

         

         

      }

    }

  }

}

...zur Antwort

Also ich weiß, das ich hier bestimmt den Faktor anwenden muss, allerdings weiß ich nicht, ob ich den Faktor für Chrom, Nickel oder Molybdän nehmen muss.

...zur Antwort