Java programmieren (fehlermeldung) hilfe.

...komplette Frage anzeigen

1 Antwort

Heißt er kommt dort nie an (unreachable = nicht erreichbar), weil die Schleife davor ins Endlose läuft:

for(i=ar.length-1;1>=1;i++){
  ar[i]=ar[i-1];
}

1 ist IMMER größer oder gleich 1. Die Schleife hat nie ein Ende.

danke habs scho.. aber irgentwie wird die reihenfolge nur umgedreht und nicht jede zahl verschoben.

15,14,13,12,10 wird ausgegeben

0
@Karli111

Jo. Und? Was hat du denn vor? Was soll das Programm denn machen?

0
@myjack

er soll alle elemente in k um eine position nach links verschieben

0
@Karli111

? k ist eine Zahl. Was soll darin verschoben werden?

Oder willst du die Werte im Array ar um k-mal nach links verschieben (also jeweils den letzen Wert an den Anfang setzen)?

0
@myjack

ja genau so. for(i=ar.length-1;i>=1;i--){ ar[i]=ar[i-1]; } diesen fehler habe ich schon behoben

0
@Karli111

Öhm.. aber wenn du das 5 mal machst sieht das Array doch wieder genauso aus wie vorher...

0
@myjack

public class vertauschen {

public static void main(String[] args) {
    int help;
    int i;
    int j;
    int[]ar={10,2,22,14,1};
    int k=2;
    for(j=1;j<=k;j++){
        help=ar[ar.length-1];
        for(i=ar.length-1;i >=1;i--){
            ar[i]=ar[i-1];

        }
        ar[0]=help;
        System.out.println(ar[i]);
    }

}

}

da gibts mir 1 14 aus, ich weiß nicht was ich falsch mache eig sollte sich alles um 2 nach links verschieben

0
@Karli111
public static void main(String args[]) {
    int k = 2, pos;
    int[] ar = {10,12,13,14,15};
    int[] new_ar = new int[ar.length];

    for (int i = 0; i < k; i++) {
        for (int j = 0; j < ar.length; j++) {
            pos = j >= ar.length-1 ? 0 : j+1;
            new_ar[j] = ar[pos];
        }
        ar = new_ar.clone();
    }
    for(int i=0; i<ar.length; ++i) {
        System.out.print(ar[i]+";");
    }
}
0

Was möchtest Du wissen?