Итерируйте по массиву и получите все кратные 10 java - PullRequest
0 голосов
/ 09 мая 2018

Я очень новичок в Java, и я пытаюсь перебрать массив целых чисел и получить все кратные 10. Что я получаю с моим кодом, это элементы в массиве, напечатанные 100 раз, так как это длина массива , Я знаю, что это очень просто, но я просто не могу понять проблему. Вот что у меня есть:

import java.util.Arrays;

public class ArrayThings {
    public static void main(String[] args) {
        int[] myFirstArray = new int[100];

        for (int i = 0; i < myFirstArray.length; i++) {
            myFirstArray[i] = i;
        }

        for (int i : myFirstArray) {
            if (i % 10 == 0) {
                myFirstArray[i] = i;
            } else {
                i++;
            }

            System.out.println(Arrays.toString(myFirstArray));
        }
    }
}

Ответы [ 5 ]

0 голосов
/ 09 мая 2018

Вы должны переместить оператор print за пределы цикла for, то есть то, что заставляет его печататься 100 раз.

Также ваш текущий код, похоже, абсолютно ничего не делает.Вы проверяете модуль i, а затем устанавливаете значение myFirstArray в это значение i.Текущее значение myFirstArray в i уже равно i, как было инициализировано в первом цикле.

0 голосов
/ 09 мая 2018

Это должно работать

import java.util.Arrays;

public class ArrayThings {
    public static void main(String[] args) {
        int[] myFirstArray = new int[100];
        int[] myMultiplesArray = new int[9];

        for (int i = 0; i < myFirstArray.length; i++) {
            myFirstArray[i] = i;
        }

        int j = 0;

        for (int i : myFirstArray) {
            if (i % 10 == 0) {
                myMultiplesArray[j] = i;
                j++;
            } 

        }
        System.out.println(Arrays.toString(myMultiplesArray));
    }
}
0 голосов
/ 09 мая 2018

В Java-8 вы можете сделать это, как показано ниже:

int result[] = IntStream.range(1, 100).filter(e -> e%10==0).toArray();
System.out.println(Arrays.toString(result));
0 голосов
/ 09 мая 2018

Я думаю, это то, что вы хотите сделать:

public class ArrayThings {
    public static void main(String[] args) {
        int[] myFirstArray = new int[100];

        // array generation
        for (int i = 0; i < myFirstArray.length; i++) {
            myFirstArray[i] = i;
        }
        // printing multiples of 10
        for (int i = 0; i < myFirstArray.length; i++) {
            if (i % 10 == 0 && i != 0) {
                System.out.println(myFirstArray[i]);
            }
        }
    }
}
0 голосов
/ 09 мая 2018

Зачем вам нужен массив для печати, кратной 10? Вы можете просто сделать:

 public class ArrayThings{
          public static void main(String[]args){
            for(int i=0; i<101; i++) {
                if(i%10==0 && i != 0){
                System.out.println(i);
                }
            }

        }}

P.S. вы печатаете весь массив, а не этот конкретный элемент, поэтому вы получаете неправильный вывод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...