5. OPERADORES DE INCREMENTO
Y DECREMENTO - ABREVIADOS
Operación sintaxi
s
Significado
Postincremento i++ i = i + 1
Preincremento ++i i = i + 1
Postdecremento i-- i = i - 1
predecremento --i i = i - 1
Post Primero se asigna y
luego se incrementa o decrementa.
Pre Primero se incrementa o
decrementa y luego se asigna.
Cuando hay una operación
de asignación que
involucre operaciones de
este tipo
z = x++
z = --x
a op= b a = a op b
+, -, *, /
a += b; a = a + b;
c -= 2; c = c – 2;
d *= 3; d = 3*d;
f /= g; f = f/g;
6. CICLO WHILE EN C
MIENTRAS(expresión_logica)HAGA
secuencia
FIN_MIENTRAS
while (expresion_logica) {
secuencia
}
Sintaxis: Recomendaciones (preguntas clave - requisitos)
Control de ciclos
• Caso cuantitativo. (Se conoce el numero de
veces que se va a repetir el ciclo – bucles
controlados por contador).
• Caso cualitativo. (No se conoce cuantas veces
se va a repetir el ciclo).
Control por centinela.
Control por indicador (bandera).
8. CICLO WHILE EN C
La sentencia for (bucle for) es un
método para controlar una
sentencia o bloque de sentencias
un numero fijo de veces.
Este bucle es mas adecuado para
implementar bucles controlados
por contador, es decir bucles de
conteo en los que el numero de
repeticiones se conoce por
anticipado.
PARA(VC = LI,LF,INC)HAGA
secuencia
FIN_PARA
for (expre1;expre2;expre3) {
secuencia
}
Sintaxis:
9. CICLO FOR EN C
PARA(VC = LI,LF,INC)HAGA
secuencia
FIN_PARA
for (expre1;expre2;expre3) {
secuencia
}
expre1 – inicialización: Da un valor
inicial a la variable de control del
bucle. Se ejecuta solo una vez antes
de la evaluación de la expresión de
control. Se pueden inicializar una o
varias variables.
expre2 – Expresión de control:
Condición que contiene una
expresión lógica, mientras sea
verdadera se realiza el bucle.
expre3 – ajuste (actualización):
Incrementa o decrementa la
variable de control del bucle.
secuencia: Sentencias a
ejecutar en cada iteración del
bucle.
LF: Ajuste (+/-)
VC: Valor final
VC: Valor inicial
VC: Variable de control
10. CICLO FOR EN C
• Existen dos formas de implementación de la sentencia for.
for (expre1;expre2;expre3) {
secuencia
}
for(var_control=valor_inicial; var_control<=valor_limite; exp_incremento) {
secuencias;
}
for(var_control=valor_inicial; var_control>=valor_limite; exp_decremento) {
secuencias;
}
Forma ascendente
Forma ascendente
La variable de control
se incrementa
La variable de control
se decrementa
for(i = 0; i <= 10; i++)
for(i = -1; i <= 7; i+=2)
for(i = -100; i <= -20; i*=5)
for(i = -1; i <= 1; i = 10)
for(i = 100; i >= 10; i-=40)
for(i = 25; i >= 7; i-=2)
for(i = 0; i >= -10; i--)
for(i = -150; i >= -750; i-=20)
11. CICLO WHILE EN C
los ciclos for.
• Los rangos de incremento o decremento de la variable o expresión de control del bucle pueden ser
cualquier valor y no siempre 1, es decir 5, 10, 20, 4, etc., dependiendo de los intervalos que se necesiten.
int n = 0;
for(n = 0; n <100; n +=20)
printf(“%d %d n”, n, n*n);
int;
for(i = ‘a’; i <= ‘h’; i += 3) {
printf(“%d %c n”, i, i);
}
int j;
for(j = 9; j >= 2; j -= 2) {
printf(“%dn”, i - 1);
}
int k;
for(k = 1; k < 100; k *=2) {
printf(“%dn”, k);
}
12. CICLO FOR EN C
• La(s) variable de control se puede incrementar o decrementar no solo en valores tipo int, también es
posible realizar tales operaciones usando valores tipo float o double permitiendo el incremento o
decremento en cantidades decimales.
double p;
for(p = 0.75; p <= 5; p += 0.25) {
printf(“p = %lfn”, p);
}
float n;
for(n = 1; n >= 0; n -= 0.1) {
printf(“n = %fn”, n);
}
13. CICLO FOR EN C
for (;;) {
printf(“fuck! n”);
}
• Cuando no se tiene expresión de inicialización, condición y actualización (incremento o decremento) en el bucle
for, este se ejecuta de manera infinita
Para romper la ejecución de un
programa presione las teclas
CTRL + C
14. CICLO FOR EN C
for (i = 1; i <= 10;i++);
printf(“Solo sale una vezn ”);
• Situar un punto y coma (;) después del paréntesis inicial de un bucle for hace que el cuerpo del bucle este vacio.
• El operador coma (,) permite extender la flexibilidad del ciclo for ya que este permite incluir mas de una
expresión de inicialización o actualización en una única especificación del loop.
#define MAX 25
int i, j;
for (j = 0, j <= MAX; i < j; i++,j--) {
printf(“%d ”, (i + 2*j));
}
15. Break
Esta sentencia termina la ejecución del bucle, permitiendo que el punto de control de la
ejecución se salga del bucle.
. . .
int j;
. . .
for (j <= 1; i < 10; j++) {
printf(“no te doy otra no mas !!!!n”);
if (i > 3) {
break;
}
}
Continue
Hace que la ejecución del bucle vuelva a la cabecera del bucle.
. . .
int j;
. . .
for (j <= 1; i < 10; j++) {
printf(“no te doy otra no mas !!!!n”);
if (i > 3 && i <= 9) {
continúe;
}
}