Professional Documents
Culture Documents
SELECCIN
CURSO DE PROGRAMACIN
RECUERDA QUE: UNA CONDICIN EST
FORMADA POR EXPRESIONES LGICAS
Y SOLAMENTE PUEDEN TENER DOS
VALORES: "VERDADERO" Y "FALSO".
OBJETIVOS
Implementar sentencias de control de seleccin en un programa usando
sentencias if.
FLUJO DE CONTROL
Las sentencias de los programas se ejecutan en secuencia, lo
que se denomina ejecucin secuencial o flujo de contral,
secuencial.
Sin embargo, se pueden aadir sentencias de toma de
decisiones a un programa para alterar este flujo de control.
La sentencia que altera el flujo de control se denomina una
sentencia de control.
En este captulo se describen algunas sentencias de control
importantes denominadas sentencias de seleccin.
En el siguiente captulo, describiremos otras sentencias de
control denominadas sentencias de repeticin.
LA SENTENCIA IF
Se usa una sentencia if para especificar qu bloque de cdigo se
ejecuta.
Un bloque el cdigo puede contener cero o ms sentencias.
Qu bloque de cdigo se ejecuta depende de resultado de la
evaluacin de una condicin de prueba, denominada expresin
booleana.
Un sentencia if en un programa que tiene el siguiente formato
general:
if (
<expresion booleana> )
<bloque then>
else
<bloque else>
Expresin Booleana
Bloque then
if (puntuacionPrueba < 70)
cuadroMensaje.show("no ha aprobado);
else
Bloque else
cuadroMensaje.show("ha aprobado");
OPERADORES RELACINALES
<
// menor que
<=
==
// igual a
!=
// distinto de
>
// mayor que
>=
EJEMPLOS
a*a <= c
x+y != z
//cierto si x + y no es igual a z
a == b
//cierto si a es igual a b
a + 4 > 7
DIAGRAMA DE FLUJO
F
puntuacionPrueba < 70
cuadroMensaje.show
(Ha aprobado);
cuadroMensaje.show
(No ha aprobado);
SENTENCIAS COMPUESTAS
Sentencias
compuestas
ESTILO
if (<expresion booleana>) {
else {
Estilo 1
if (<expresion booleana>)
{
}
Estilo 2
else
{
}
IF ABREVIADO
F
puntuacionPrueba>=95
cuadroMensaje.show
(Ud. es excelente);
PREGUNTAS RPIDAS
1. Identifique las sentencias if invlidas
a. if(a < b) then
x = y;
else
x= z;
c . if(a < b)
x = y;
else {
x= z;
}
b. if ( a < b )
else x = y;
d. if ( a < b ) {
x = y; } else
x = z;
EXPRESIONES BOOLEANAS Y
VARIABLES
Tres operadores booleanos son AND, OR y NOT.
En Java, los smbolos &&, ||, y ! representan los operadores
AND, OR y NOT respectivamente.
Operadores booleanos y su significado.
A
A&&B
A||B
!A
V = verdadero, F = falso
EJEMPLOS
ERROR FRECUENTE
Un error muy frecuente cuando se escribe un programa es
mezclar los operadores de asignacin y de igualdad.
Frecuentemente cometemos el error de escribir.
if (x = 5) . . .
cuando realmente queramos decir:
if (x == 5) ...
PREGUNTAS RPIDAS
Evale las siguientes expresiones booleanas. Suponga que x, y y z tienen
valores numricos.
a. a < 5 || 6 == 6
b. 2 < 4 && (false || 5 <= 4 )
c. x <= y && ! (z != z)
| x > y
d. x < y || z < y && y <= z
2. Identifique errores en las siguientes expresiones y asignaciones booleanas.
a. boolean hecho;
hecho = x = y;
b. 2 < 4 && (3 < 5) + 1 == 3
c. boolean rpido;
rapido = true;
rapido == ( 34 == 20 ) && rapido;
SENTENCIAS IF ANIDADAS
Las clusulas then y else de una sentencia if pueden
contener cualquier sentencia, incluyendo otra sentencia if.
Una sentencia if que contiene otra sentencia if, bien en el
bloque then o bien en el bloque else, se denomina una
sentencia if anidada.
Recuerda que: una sentencia if puede contener otras
sentencias if. Si esto ocurre decimos que tenemos sentencias
if anidadas.
EJEMPLO
if (puntuacionPrueba >= 70) {
if (edadEstudiante < 10) {
cuadroMensaje.show(
"Ha hecho un gran trabajo");
}
else {
//puntuacin prueba >= 70
//y edad >= 10
cuadroMensaje.show("Ha aprobado");
}
}
else { // puntuacin prueba < 70
cuadroMensaje.show("No ha aprobado");
}
OTRA VERSIN
if (puntuacionPrueba >= 70 && edadEstudiante < 10) {
cuadroMensaje.show(
"Ha hecho un gran trabajo");
}
else {
//o bien puntuacin prueba < 70 OR
// edad >= 10
if (puntuacionPrueba >= 70){
cuadroMensaje.show("Ha aprobado");
}
else {
cuadroMensaje.show("No ha aprobado");
}
}
if (num1 < 0)
if (num2 < 0)
if (num3 < 0)
contadorNegativo
else
contadorNegativo
else
if (num3 < 0)
contadorNegativo
else
contadorNegativo
else
if (num2 < 0)
if (num3 < 0)
contadorNegativo
else
contadorNegativo
else
if (num3 < 0)
contadorNegativo
else
contadorNegativo
OTRA VERSIN
contadorNegativo = 0;
if (num1 < 0)
contadorNegativo++;
if (num2 < 0)
contadorNegativo++;
if (num3 < 0)
contadorNegativo++ ;
CLCULO DE LA NOTA DE
UN ESTUDIANTE
Prueba puntuacin
Nota
90 < puntuacin
es A");
es B");
es C");
es D");
es F");
ELSE COLGADO
if (x < y)
if (x < z)
cuadroMensaje.show("Hola") ;
else
cuadroMensaje.show("Adis") ;
if (x < y)
if (x < z)
cuadroMensaje.show("Hola") ;
else
cuadroMensaje.show("Adis") ;
SOLUCIN
if (x < y){
if (x < z)
cuadroMensaje.show("Hola") ;
}
else
cuadroMensaje.show("Adis") ;
PREGUNTAS RPIDAS
1. Rescriba las siguientes sentencias de if anidados sin usar ningn
anidamiento:
a. if ( a < c )
c. if ( a < b )
if ( b < c )
if ( a >- b )
x = y;
x = z;
else
else
x = z;
x = y;
else
else
x = z;
x = z;
b. if ( a -= b )
x = y;
else
if ( a > b )
x = y;
else
x = z;
PREGUNTAS RPIDAS
2. D formato a las siguientes sentencias if usando
sangrado.
a. if(a<b)if(c>d)x = y; else x = z;
b. if(a<b){if(c > d)x = y;}else x = z;
c. if(a<b)x = y;if(a<c)x-z;else if(c<d)
z = y;
LISTBOX
Se considera una interfaz mejor aquella que permite al usuario
introducir solamente valores que son vlidos, en lugar de
detectar los errores despus de que el usuario ha introducido un
valor invlido.
Existe un objeto ListBox en el paquete javabook que
proporciona una lista de elementos que el usuario puede
seleccionar.
MainWindow ventanaPrincipal = new MainWindow( );
ListBox colorLista = new ListBox(ventanaPrincipal);
y se ejecuta
seleccion = colorLista.getSelectedIndex( );