for(int x : v)

Xavier
11 de Diciembre del 2005
En el siguiente código en la linea 20 hay un bucle for que tiene la forma for(int x : v). Que tipo de bucle for es este?, como es que tiene dos puntos en lugar de puntos y coma para separar las condiciones?
// Varargs y sobrecarga.
class VarArgs3 {

static void vaTest(int ... v) {
System.out.print("vaTest(int ...): " +
"Number of args: " + v.length +
" Contents: ");

for(int x : v)
System.out.print(x + " ");

System.out.println();
}

static void vaTest(boolean ... v) {
System.out.print("vaTest(boolean ...) " +
"Number of args: " + v.length +
" Contents: ");

for(boolean x : v)
System.out.print(x + " ");

System.out.println();
}

static void vaTest(String msg, int ... v) {
System.out.print("vaTest(String, int ...): " +
msg + v.length +
" Contents: ");

for(int x : v)
System.out.print(x + " ");

System.out.println();
}

public static void main(String args[])
{
vaTest(1, 2, 3);
vaTest("Testing: ", 10, 20);
vaTest(true, false, false);
}
}

aaa
11 de Diciembre del 2005
es un foreach

es una forma abreviada de poner:

for(int i = 0; i < v-length; ++i)
{
int x = v[i];

....
}