Introducción a la Programación V - UPMlaurel.datsi.fi.upm.es/_media/docencia/cursos/java/... ·...

5
11/30/10 1 Introducción a la Programación V Curso de Programación en Java San<ago Muelas Pascual smuelas@fi.upm.es Noviembre 2010 break Dentro de un switch, for, while o un do/while Provoca la salida inmediata de la estructura La ejecución con<nua con la primera sentencia después de la estructura Scanner sc = new Scanner(System.in); while ( true ) { int valor = sc.nextInt(); if (valor < 0 ) break; else System.out.println(”valor: ” + valor); } con<nue Dentro de un switch, for, while o un do/while Provoca la finalización de la iteración que se esté llevando a cabo Hay que tener en cuenta los efectos que pueda tener en el bucle for (int i=0; i<10; i++) { continue; System.out.println(“Dentro del bucle”); } Ejemplo Scanner sc = new Scanner(System.in); while ( true ) { int valor = sc.nextInt(); if (valor < 0 ) { System.out.println(”Valor invalido”); continue; } else System.out.println(”valor: ” + valor); } e<quetas Tanto break como con<nue se pueden u<lizar junto con e<quetas Se u<lizan cuando hay bucles anidados y se quiere indicar a donde se quiere salir o qué iteración se quiere con<nuar La e<queta se sitúa antes del bucle Las e<quetas siguen el esquema de nombrado de las variables etiqueta: sentencias Ejemplos externo: for (int i=0; i<3; i++) { System.out.println(”Externo”); for (int j=0; j<5; j++) { if (j>1) continue externo; System.out.println(”Interno"); } // final del bucle interno System.out.println(“Adios”); Salida: Externo Interno Interno Externo Interno Interno Externo Interno Interno Adios

Transcript of Introducción a la Programación V - UPMlaurel.datsi.fi.upm.es/_media/docencia/cursos/java/... ·...

Page 1: Introducción a la Programación V - UPMlaurel.datsi.fi.upm.es/_media/docencia/cursos/java/... · 11/30/10 4 Copia de Arrays Hay que copiar los elementos uno a uno int[] valores1

11/30/10 

Introducción a la Programación V Curso de Programación en Java 

  

San<ago Muelas Pascual [email protected] 

 Noviembre 2010 

break 

  Dentro de un switch, for, while o un do/while 

  Provoca la salida inmediata de la estructura 

  La ejecución con<nua con la primera sentencia después de la estructura Scanner sc = new Scanner(System.in);

while ( true ) {

int valor = sc.nextInt();

if (valor < 0 )

break;

else

System.out.println(”valor: ” + valor);

}

 

con<nue 

  Dentro de un switch, for, while o un do/while 

  Provoca la finalización de la iteración que se esté llevando a cabo 

  Hay que tener en cuenta los efectos que pueda tener en el bucle 

for (int i=0; i<10; i++) {

continue;

System.out.println(“Dentro del bucle”);

}

Ejemplo 

Scanner sc = new Scanner(System.in);

while ( true ) {

int valor = sc.nextInt();

if (valor < 0 ) {

System.out.println(”Valor invalido”);

continue;

}

else

System.out.println(”valor: ” + valor);

}

e<quetas 

  Tanto break como con<nue se pueden u<lizar junto con e<quetas 

  Se u<lizan cuando hay bucles anidados y se quiere indicar a donde se quiere salir o qué iteración se quiere con<nuar 

  La e<queta se sitúa antes del bucle    Las e<quetas siguen el esquema de nombrado de las variables 

etiqueta:

sentencias

 

Ejemplos 

externo:

for (int i=0; i<3; i++) {

System.out.println(”Externo”);

for (int j=0; j<5; j++) {

if (j>1) continue externo;

System.out.println(”Interno");

} // final del bucle interno

System.out.println(“Adios”);

Salida:  Externo Interno Interno Externo Interno Interno Externo Interno Interno Adios 

Page 2: Introducción a la Programación V - UPMlaurel.datsi.fi.upm.es/_media/docencia/cursos/java/... · 11/30/10 4 Copia de Arrays Hay que copiar los elementos uno a uno int[] valores1

11/30/10 

Ejemplos 

externo:

for (int i=0; i<3; i++) {

System.out.println(”Externo”);

for (int j=0; j<5; j++) {

if (j>1) break externo;

System.out.println(”Interno");

} // final del bucle interno

System.out.println(“Adios”);

Salida:  Externo Interno Interno Adios 

Arrays 

Arrays 

  Es un contenedor de elementos de un mismo <po (int, double, char, …) 

  Se almacenan en memoria con*gua 

  Se indexan con un índice que comienza en 0 

Creación de Arrays 

  Hay que especificar el tamaño int[] valores = new int [5];

  O por medio de una lista de valores int[] valores = {5,4,2,1};

  Se accede a sus elementos por medio del operador []  System.out.println(valores[0])

valores[1] = 4;

  

 

Creación de Arrays II 

  ¿Qué ocurre cuando no se especifican sus valores ? 

int[] valores = new int[5];

System.out.println(valores[0]);

  Se inicializa con el valor de por defecto del <po definido 

  ¿Qué ocurre cuando se intenta acceder a una posición que no existe? 

System.out.println(valores[27]);

  Se produce una excepción (se verá más adelante) 

Ejemplos 

int[] valores = {5,4,2,1};

System.out.println(valores[0]) 

System.out.println(valores[4]) 

 

int a = 1, b=2; 

valores[a+b] += 2; 

 

Page 3: Introducción a la Programación V - UPMlaurel.datsi.fi.upm.es/_media/docencia/cursos/java/... · 11/30/10 4 Copia de Arrays Hay que copiar los elementos uno a uno int[] valores1

11/30/10 

¿Qué es un array? 

  Un array es un objeto especial 

  “Almacena” los valores del array 

  Controla el acceso    Al contrario que en C/C++ 

  Almacena más información:el tamaño del array    La variable length con<ene el tamaño del array 

System.out.println(valores.length);

¿Qué es un array? II 

int[] valores = {10,20,30,40};

10 20 30 40 

¿Qué es un array? III 

int[] valores = {10,20,30,40};

  En valores no se almacena el valor sino la referencia    Las referencias a objetos se explicarán en detalle más adelante    Sucede lo mismo con todos los objetos 

  ¿Qué ocurriría? 

int[] valores1 = {10,20,30,40};

int[] valores2 = {50,60,70,80};

valores1 = valores2;

 

¿Qué es un array? IV 

10 20 30 40 

50 60 70 80 

int[] valores1 = {10,20,30,40};

int[] valores2 = {50,60,70,80};

valores1 = valores2;

¿Qué es un array? V 

10 20 30 40 

50 60 70 80 

int[] valores1 = {10,20,30,40};

int[] valores2 = {50,60,70,80};

valores1 = valores2;

¿valores1[0] = 1;?

¿valores2[0] = 2;?

¿Qué es un array? V 

10 20 30 40 

2  60 70 80 

int[] valores1 = {10,20,30,40};

int[] valores2 = {50,60,70,80};

valores1 = valores2;

¿valores1[0] = 1;?

¿valores2[0] = 2;?

Page 4: Introducción a la Programación V - UPMlaurel.datsi.fi.upm.es/_media/docencia/cursos/java/... · 11/30/10 4 Copia de Arrays Hay que copiar los elementos uno a uno int[] valores1

11/30/10 

Copia de Arrays 

  Hay que copiar los elementos uno a uno 

int[] valores1 = {10,20,30,40};

int[] valores2 = {50,60,70,80};

valores1[0] = valores2[0];

valores1[1] = valores2[1];

valores1[2] = valores2[2];

valores1[3] = valores2[3;

Declaración sin inicialización de un Array 

int[] miArray;

  Para almacenar la referencia de otro array 

  Para crearlo más tarde 

int[] miArray;

miArray = new int[4];

miArray = new int[] {1,2,3};

  ¿Qué sucede si ejecuto esta sentencia después de int[] miArray? 

System.out.println(miArray[0]);

  ¿Y si imprimo el valor de la variable array? 

System.out.println(miArray);

Arrays Mul<dimensionales 

  Son simplemente arrays de arrays    Cada elemento del array almacena la referencia a otro array 

int[][] multiArray = new int[2][2];

multiArray[0][0] = 1;

multiArray[0][1] = 2;

multiArray[1][0] = 3;

multiArray[0][1] = 4;

 

1 2

3 4

Arrays Mul<dimensionales II 

Otra forma equivalente 

int[][] multiArray;

multiArray = new int[2][];

multiArray[0] = new int[2];

multiArray[1] = new int[2];

También se pueden declarar con una lista de valores 

int[][] multiArray = { {1,2} , {3,4} };

1 2

3 4

Arrays Mul<dimensionales III 

  Son arrays de arrays  Pueden tener un número dis<nto de columnas 

int[][] multiArray;

multiArray = new int[2][];

multiArray[0] = new int[1];

multiArray[1] = new int[3];

multiArray[0][0] = 10;

multiArray[1][0] = 20;

multiArray[1][1] = 45;

multiArray[2][2] = 6;

10 

20  45  6 

for each/ for mejorado 

  Para iterar sobre los elementos de un array sin u<lizar un contador 

for ( tipo variable : nombreArray) {

sentencias

}

Page 5: Introducción a la Programación V - UPMlaurel.datsi.fi.upm.es/_media/docencia/cursos/java/... · 11/30/10 4 Copia de Arrays Hay que copiar los elementos uno a uno int[] valores1

11/30/10 

Ejemplo 

int[] array = {1,2,3,4,5,6};

int total = 0;

// for básico

for (int i=0; i<array.length; i++) {

total += array[i];

}

for (int numero : array) {

total += numero;

}