Java for: каждая проблема цикла не работает, в то время как цикл работает в одной и той же программе.Кто-нибудь может сказать разницу и сказать мне, почему? - PullRequest
0 голосов
/ 31 декабря 2018

Java для: каждая проблема цикла не работает, в то время как цикл работает на одной и той же программе. Может кто-нибудь сказать разницу и сказать мне, почему?

package pkgtry;
public class Try{
        public static void main(String args[]) {
                int array[] = {1,45,57,313,56,1,235,213,352323,547,441,56,2314};
                System.out.println("Ta stoixeia tou pinaka prin thn taxinomhsh: ");
                for (int i : array){
                        System.out.print(" " + array[i]);
                }
                System.out.println();

                Try.insertionSort(array);
                System.out.println("Ta stoixeia tou pinaka meta thn taxinomhsh: ");

                for (int i : array){
                        System.out.print(" " + array[i]);
                }
        }

        public static void insertionSort(int array[]){
                for(int i=1; i<array.length; i++){
                        int current = array[i];
                        int j=i;

                        while(j>0 && array[j -1]> current){
                                array[j] = array[j-1];
                                j--;
                        }
                        array[j] = current;
                }
        }
}

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Здесь

for (int i : array) {
    System.out.print(" " + array[i]);
}

вы не должны использовать массив [i], а только i, который уже является элементом вашего массива.

Так что попробуйте:

System.out.print(" " + i);

Полагаю, вы думали об этом, когда сказали, что это не работает, нет?

0 голосов
/ 31 декабря 2018

Когда вы используете for each для этого массива, который содержит целые числа,переменная i не является счетчиком итераций, а фактическим элементом массива,поэтому измените:

for (int i : array){
    System.out.print(" " + array[i]);
}

на

for (int i : array){
   System.out.print(" " + i);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...