Este documento discute conceptos básicos de programación como expresiones, sentencias, bloques, condicionales y bucles. Explica que una expresión evalúa a un valor y tiene un tipo asociado, y que las sentencias incluyen declaraciones, asignaciones y controles de flujo. También describe los operadores y la precedencia, así como los tipos de condicionales if/else y switch/case y los bucles while y do/while.
1. 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]
2. 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ón
b = (float) a; // No es necesario
CastingBasico
3. 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
4. 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
5. Las expresiones se pueden emplear en
Asignaciones
Invocaciones a métodos
Operandos
6. Las expresiones complejas pueden evaluarse de
diferentes formas
a + b – c * 4
¿((a + b) – c) * 4?
¿((a + b) – (c * 4))?
7. 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)
8. 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)))
9. 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
10. 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
11. 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
12. Permiten ejecutar ciertas sentencias
dependiendo de una condición
If / else / else if
Switch / case
?:
Condicionales
13. Sólo ejecuta el cuerpo si la condición es cierta
La condición debe ser booleana
if (condición) {
cuerpo
}
14. Es posible especificar qué hacer si la condición
no se cumple mediante el else
if (condición) {
cuerpo1
}
else {
cuerpo2
}
15. 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
17. 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: cuerpo1
case b: cuerpo2
default: cuerpo3
}
18. 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
19. 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
}
20. 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)