Sunteți pe pagina 1din 33

ESTRUCTURAS CONDICIONALES

Y REPETITIVAS
Msc. Fausto Torres M.
Estructuras Condicionales

Construcciones para lo toma de


decisiones
La sentencia if de una sola alternativa.
La sentencia if - else de doble alternativa.
La sentencia if else de alternativa
múltiple.
La sentencia switch
Estructuras Selectivas

La sentencia if de una sola alternativa.


if (nota > 10)
if (condicion) {
// bloque de sentencias
}
if (nota > 10){
System.out.println(“Esta aprobado”);
}
La sentencia if de una sola alternativa

Programa que imprime en pantalla si se tiene una nota aprobatoria o


desaprobatoria.

F V
Nota > 10

package ejemplo07; La nota es


import javax.swing.JOptionPane; aprobatoria

public class Ejemplo07 {


Fin
public static void main(String[] args) {
int nota;
nota=Integer.parseInt(JOptionPane.showInputDialog("ingrese la nota"));
if (nota>10){
JOptionPane.showMessageDialog(null,"Esta aprobado");
}
}
}
La sentencia if - else de doble alternativa

Selectiva doble

if (condicion) {
// bloque de sentencias
}
else{ F V
Condición ?
// bloque de sentencias
}

Acción F Acción V

Fin
La sentencia if de doble alternativa

Programa que imprime en pantalla si se tiene una nota aprobatoria.

F V
Nota > 10

package ejemplo07;
Esta
import javax.swing.JOptionPane; desaprobado
Esta aprobado

public class Ejemplo07 {


public static void main(String[] args) { Fin
int nota;
nota=Integer.parseInt(JOptionPane.showInputDialog("ingrese la nota"));
if (nota>10){
JOptionPane.showMessageDialog(null,"Esta aprobado");
}
else{
JOptionPane.showMessageDialog(null,"Esta desaprobado");
}
}
}
La sentencia if else de alternativa múltiple.

Selectiva múltiple if else if


if (condicion1){
//bloque de sentencias 1 F V
} Condición 1
else if (condicion2){
//bloque de sentencias 2 F
V
}
condición2
else{
//bloque de sentencias Acción 2 Acción 1
} Condición 3

Acción 3

Salida
La sentencia if else de alternativa múltiple.

Programa que imprime un mensaje de la condición académica del


estudiante en función de su promedio de ciclo.
nota <11: Observado; 11 <= nota <14: Regular; nota >= 14: Excepcional.
package ejemplo07;
import javax.swing.JOptionPane;
public class Ejemplo07 {
public static void main(String[] args) {
int nota;
nota=Integer.parseInt(JOptionPane.showInputDialog("ingrese la nota"));
if (nota<11){
JOptionPane.showMessageDialog(null,"Es Observado");
}
else if (nota<14){
JOptionPane.showMessageDialog(null,"Es Regular");
}
else {
JOptionPane.showMessageDialog(null, "Es excepcional");
}
}
}
La sentencia if else de alternativa múltiple

Pérdida del else


if
if (temperatura
(nota <11) > 37)
if//(tensionArterial
una instrucción > 12)
if (nota <14)
contadorEnfermo++;
else //una instrucción
else contadorSaludable++;
//una instrucción

el else está asociado al if inmediatamente


anterior .
La sentencia if else de alternativa múltiple.

Programa que imprime un mensaje de la condición académica del


estudiante en función de su promedio de ciclo.
nota <11: Observado; 11 <= nota <14: Regular; nota >= 14: Excepcional.
package ejemplo07;
import javax.swing.JOptionPane;
public class Ejemplo07 {
public static void main(String[] args) {
int nota;
nota=Integer.parseInt(JOptionPane.showInputDialog("ingrese la nota"));
if (nota<11)
JOptionPane.showMessageDialog(null,"Es Observado");
else if (nota<14)
JOptionPane.showMessageDialog(null,"Es Regular");
else
JOptionPane.showMessageDialog(null, "Es excepcional");
}
}
Estructuras Selectivas Múltiple

Selectiva Múltiple Inicio


switch (expresión){
case constante1: sentencia; break; Selector
case constante1: sentencia; break;
.... Acción 11;
default: sentencia; break; Acción 12;
Alternativa 1 ...........
} break;
Acción 21;
Acción 22;
Alternativa 2 ...........
break;

. . . .
. Acción C1;
Acción C2;
Otro caso ...........
break;

Fin
Funcionamiento

1. El valor del switch (selector) es evaluado en las


alternativas una por una.
2. Si encuentra una alternativa que contenga el
valor del selector (switch), ejecuta la o las
acciones correspondientes a la etiqueta case y
termina la estructura si es que existe una
sentencia break al final de la etiqueta.
3. El break permite que no continúe la ejecución en
el siguiente enunciado case.
4. El uso de default es opcional, sin embargo sirve
para ejecutar algo (Acción X) cuando el selector
no encuentra su lugar, es decir que su valor no se
encuentra contenido en ninguna alternativa.
Ejemplo:Estructuras Selectivas Múltiple

Una empresa ofrece los siguiente productos:


Código del producto Precio
1 15
2 20
3 10
4 30

Escribir una aplicación que permita determinar el


monto a pagar. Los datos a ingresar son: el código
del producto y la cantidad a comprar.
package ejemplo07;

import javax.swing.JOptionPane;
public class Ejemplo07 {
public static void main(String[] args) {
int codigo,cantidad,precio,total;
codigo=Integer.parseInt(JOptionPane.showInputDialog("Ingrese el código"));
cantidad=Integer.parseInt(JOptionPane.showInputDialog("Ingrese la cantidad"));
precio=0;
switch(codigo){
case 1:
precio=15;
break;
case 2:
precio=20;
break;
case 3:
precio=10;
break;
case 4:
precio=30;
break;
default:
JOptionPane.showMessageDialog(null,"Código de producto no válido");
}
total=precio*cantidad;
JOptionPane.showMessageDialog(null, "El precio total es:"+total);
}
}
Estructuras Repetitivas

Mientras
while (condición){
// bloque de sentencias
}
raizraiz
= 1;= 1;
while
while
((raiz
((raiz
* raiz)
* raiz)
< x){
< x) raiz++;
System.out.println(“raiz: ”+raiz);
raiz++;
}
Estructuras Repetitivas

Hacer mientras
do{
// bloque de sentencias
}while (condición);

raiz = 0;
do{
raiz++;
}while((raiz * raiz) < x));
Estructuras Repetitivas

Desde o Para
for ( iniciaVarControl; condición; incremento ){
// bloque de sentencias
}

boolean
for(
sumaint iint
for(float
for( 1, encontrado
== 0; multiplo3
ir==100;
0.0;=i =<=
1;ri>=<=false:
5;15.0;
5; i++, multiplo3
i -= r5+= += 2 )
) 0.1)
for(int
for( ;System.out.println("Valor:
i = 1; i <=){ n; i++) suma
!encontrado; " +=
+ i);
r)i;;
System.out.println("Valor: " + multiplo3) ;
// bloque de sentencias
}
Métodos

Método con resultado


tipo_a_retornar identificador( lista
double cubo( de parametros
float x ){formales)
{
return x*x*x;
//bloque de sentencias
} return valor_ a_retornar ;
} El valor a retornar puede
Las variables locales no se
ser un valor de tipo
inicializan por defecto
primitivo o una referencia
Métodos

Método tipo void


void identificador( lista de
inicializa(parametros
void mensaje(){ formales)
float r, float l ){
{ System.out.println("
radio = r; Hola amigos");
} // bloque =del;sentencias
longitud
}}
Llamada a un método

x += cubo(3);
System.out.println(cubo(3));
inicializa(2.5, 2);
inicializa(r, l);
mensaje();

En Java el pase de parámetros es por valor


Métodos

Sobrecarga de métodos (polimorfismo en la


sobrecarga)
class Desarmadores{
int tamanhoPunta( float ancho, float espesor,
float altura ){
// bloque de sentencias
}

int tamanhoPunta( float ancho ){


// bloque de sentencias
}
int tamanhoPunta(int indiceEstandard){
// bloque de sentencias
}
}
Arreglos Unidimensonales (Vectores)

Declaración y Creación
tipo[] nomVector = new tipo[numElementos];
tipo nomVector[] = new tipo[numElementos];

int[] edades =
int edades[] new int[20];
= new int[20];
String[] ciudades
Date fiestas[] = new
= new String[50];
Date[16];

al crear un arreglo de objetos, Java lo inicializa


Los
en índices
null, van desde
indicando que el0 arreglo
hasta numElementos-1
aún no
contiene objetos
Arreglos Unidimensonales (Vectores)

Creación e inicialización
char vocales [] = {'a', 'e', 'i', 'o', 'u'};

boolean [] respuestas = { true, false, true, true};

long cont[] = {10, 15, 20, 25};


Arreglos Unidimensonales (Vectores)

Acceso a los elementos


nomVector[índice]
Recorrido
int a[] = {1,2,3,4,5};

for (int k = 0; k < a.length; k++){


System.out.println( a[k] );
}
Arreglos Unidimensonales (Vectores)

Como parámetros de métodos


void ordenar( int x[], int n ){…}

final int N = 100;


int a[] = new int[N];
ordenar(a, N);

En la llamada se pasa la referencia al arreglo


Arreglos Unidimensonales (Vectores)

Asignación de arreglos
final int N = 100;

int a[] = new int[N];


int b[] = new int[20];

a = b;

En a se copia la referencia al arreglo b de tal


modo que las dos variables (a y b) referencian
al arreglo b
Arreglos Bidimensonales (Matrices)

Declaración y Creación
tipo nomMatriz[][] = new tipo[numFilas][numColumnas];

tipo[][] nomMatriz = new tipo[numFilas][numColumnas];

int ventas[][] = new int[20][12];

String [ ][ ] calendario = new String[5][7];


Arreglos Bidimensonales (Matrices)

Creación e inicialización
tipo nomMatriz[ ][ ] = {{lista de valores de la fila 0},
{lista de valores de la fila 1},..};

int matriz [][] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};


Arreglos Bidimensonales (Matrices)

Acceso a los elementos


nomMatriz [indFila] [indColumna]
Recorrido
int ventas[][] = new int[20][12];

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


for (int j = 0; j < ventas[i].length; j++){
ventas[i][j] = (i*10 + k);
System.out.println(ventas[i][j]);
}
Arreglos Bidimensonales (Matrices)

Como parámetros de métodos

void ordenar( int x[][], int m, int n ){…}

final int N = 100;


int a[][] = new int[N][N];
ordenar(a, N, N);

En la llamada se pasa la referencia al arreglo


Arreglos Bidimensonales (Matrices)

Asignación de arreglos
final int N = 100;

int a[][] = new int[N][20];


int b[][] = new int[20][N];

a = b;

En a se copia la referencia al arreglo b de tal


modo que las dos variables (a y b) referencian
al arreglo b
Arreglos Multidimensionales

El número de corchetes requeridos varía de acuerdo


a la dimensión del arreglo.

String [ ][ ][ ] arregloMulti = new String [10][5][3];


Fin

S-ar putea să vă placă și