clase v
TRANSCRIPT
Lic. José Angel Quintanilla Rosales
Un programa bien escrito es su propio cielo; un programa mal escrito es su propio infierno. [Geoffrey James, El Tao
de la Programación]
Cambiar el tipo de una variable Cambios de tipo automáticos De int a float, de float a int
int a;float b;a = (int) b; // Se pierde informaciónb = (float) a; // No es necesario
CastingBasico
Una expresión es un conjunto de variables, operadores e invocaciones a métodos que se evalúan como un único resultado a 1 + 2 12 + a.getNumHoras() * 2
Las expresiones, además de un valor, tienen un tipo asociado, que depende de las subexpresiones dentro de la expresión
Una expresión se puede conjuntar con otras para formar una expresión mayor mediante el uso de operadores
Las expresiones se pueden emplear en Asignaciones Invocaciones a métodos Operandos
Las expresiones complejas pueden evaluarse de diferentes formas
a + b – c * 4
¿((a + b) – c) * 4?¿((a + b) – (c * 4))?
Se pueden emplear paréntesis para especificar el orden de evaluación ((a + b) – c) * 4
Existen las reglas de precedencia * y / más precedencia que + y -
Pero es mejor despejar la ambigüedad mediante el uso de paréntesis a + b – (c * 4)
En operadores binarios, ¿cómo se leen los operadores?
Asociatividad a la izquierda: suma 1 + 2 + 3 + 4 => (((1 + 2) + 3) + 4)
Asociatividad a la derecha a = b = c => (a = (b = (c)))
Una sentencia es una unidad completa de ejecución y termina en punto y coma
Sentencias de expresión Una expresión terminada en ;
Sentencias de declaración Sentencias de control de flujo
Un bloque es un conjunto de cero o más sentencias agrupadas entre llaves{ int a = 1120;}
Un bloque es, funcionalmente, como una sentencia y puede aparecer dónde puedan aparecer sentencias
Un programa es un conjunto de sentencias Hasta ahora, podemos hacer programas que
usen variables, pero no podemos hacer nada para romper el hilo secuencial
Permiten ejecutar ciertas sentencias dependiendo de una condición
If / else / else if Switch / case ?:
Condicionales
Sólo ejecuta el cuerpo si la condición es cierta La condición debe ser booleana
if (condición) {cuerpo
}
Es posible especificar qué hacer si la condición no se cumple mediante el else
if (condición) {cuerpo1
}else {
cuerpo2}
Se pueden encadenar varios condicionales Aunque más de una condición sea cierta, sólo se
ejecuta el cuerpo de la condición que aparece la primera
Si no se verifica ninguna condición, se ejecuta el else final
if (condición1) {cuerpo1
}else if (condición2){
cuerpo2}else if (condición3) {
cuerpo3}else {
cuerpo4}
Modo compacto de los if else anidados Sólo permite condiciones de igualdad
Si la condición es igual a 'a', se ejecuta cuerpo 1 Si ninguna se verifica
se ejecuta 'default'
switch (condición) {case a: cuerpo1case b: cuerpo2default: cuerpo3}
Mucho cuidado con switch Se ejecutan las sentencias desde el case que
verifica la condición hasta el final del switch o hasta un break.
Condicionales
while: ejecuta el cuerpo del bucle mientras la condición sea cierta
La condición se evalúa antes de la iteración
while (condición) {cuerpo
}
do while: ejecuta el cuerpo del bucle mientras la condición sea cierta
La condición se evalúa al final de la iteración, con lo que siempre se ejecuta al menos una vez
do{cuerpo
} while (condición)