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; }
}
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í .