Bucle a través de una lista - cuando el índice llega al final, empezar desde 0

shrads:

Quiero entender la lógica de bucle a través de una lista. Cuando llego al final de la lista, quiero que el índice para empezar desde 0 otra vez. La lista se ejecuta en un bucle y terminación va a suceder, por lo que no será un bucle infinito.

He visto solución utilizando operador% pero no entenderlo. Algo así como por debajo, pero con% en su lugar. Quiero entender cómo funcionará.

 for(int i = 0; i < n; i++) { 
   if(i == n - 1) { i = 0; }
}
jeprubio:

El operador de módulo % es el resto después de la división.

Dados dos números positivos, a y n, a% n es el resto de la división euclidiana de un por n, donde a es el dividendo y n es el divisor.

Usted dijo que usted tiene una lista, si se utiliza % list.length()esto le dará los valores de 0 a List.length ().

Ver el siguiente código:

List<String> list = new ArrayList<String>();
list.add("first");
list.add("second");
list.add("third");

for (int i = 0; i < 10; i++) {
    System.out.println("element: " + list.get(i % list.size()));
}

este salidas:

element: first
element: second
element: third
element: first
element: second
element: third
element: first
element: second
element: third
element: first

Puede comprobar que funcione aquí .

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=400852&siteId=1
Recomendado
Clasificación