Professional Documents
Culture Documents
Syntax
Declaracin if (expresin)
expresin
o FALSE (=0)
Si
Note Siempre que usted vea statement en una gua de sintaxis, puede ser substituido por una declaracin compuesta (del bloque). Recuerde: los espacios y las nuevas lneas no son significativos.
Declaracin if
Syntax
if (expression) statement
START
expression 0
TRUE
expression
expression = 0
FALSE
statement
END
Declaracin if
Example
int x = 5;
if (x) Si x es TRUE (no-cero) { printf("x = %d\n", x); entonces imprime el valor de x. } while (1); }
Que
Si
permite imprimir si x = 5? Si x = 0?
x = -82? Si x = 65536?
Declaracin if
if
(x) vs. if (x == 1) if (x) necesita solamente testear para no igual a 0 if (x == 1) necesita probar para la igualdad con 1
Recuerde:
Ejemplo: if (x)
if (x)
8: 011B4 011B6 E208C2 320004 if (x) cp0.w 0x08c2 bra z, 0x0011c0
if (x == 1)
11: 011C0 011C2 011C4
804610 500FE1 3A0004
Anidando Declaraciones if
Example
int power = 10; float band = 2.0; float frequency = 146.52; if (power > 5) { if (band == 2.0) { if ((frequency > 144) && (frequency < 148)) { printf("Yes, it's all true!\n"); } } }
Declaracin if-else
Syntax
(=0)
Si Si
Declaracin if-else
Sintaxis
expresion 0
TRUE
expression
statement1
expresion = 0
statement2
FALSE
END
Declaracin if-else
Example
//frequency in MHz
if ((frequency > 144.0) && (frequency < 148.0)) { printf("You're on the 2 meter band\n"); } else { printf("You're not on the 2 meter band\n"); } }
if-else if
Syntax
FALSE (=0)
Si Si
Si
Si
Syntax
if-else if Sentencia
statement1
FALSE
expression2
TRUE
statement2
FALSE
statement3
END
Example
if-else if
printf("You're on the 2 meter band\n");
else if ((freq > 222) && (freq < 225)) printf("You're on the 1.25 meter band\n"); else if ((freq > 420) && (freq < 450)) printf("You're on the 70 centimeter band\n"); else printf("You're somewhere else\n");
Sintaxis
Sentencias switch
switch (expresion) { case const-expr1: sentencia1 case const-exprn: sentencian default: sentencian+1
es evaluada y testeada para igualar con la const-expr en cada clusula case La sentencia en la clausula igualada case es ejecutada
expresion
START
Sentencia switch
statement1
Const-expr2= expression?
NO
YES
statement2
Note que cada sentencia fracasa a la siguiente Este es el comportamiento por defecto de la sentencia switch
statementn
statementn+1
END
Sentencia switch
START
break;
statement2 break;
statementn break;
statementn+1
Adicionando una sentencia break a cada bloque de sentencias permite eliminar fracasos, permitiendo solamente un caso de bloque de clausulas de la sentencias que se ejecutar
END
Sentencia switch
switch Ejemplo 1
switch(channel) { case 2: printf("WBBM Chicago\n"); break; case 3: printf("DVD Player\n"); break; case 4: printf("WTMJ Milwaukee\n"); break; case 5: printf("WMAQ Chicago\n"); break; case 6: printf("WITI Milwaukee\n"); break; case 7: printf("WLS Chicago\n"); break; case 9: printf("WGN Chicago\n"); break; case 10: printf("WMVS Milwaukee\n"); break; case 11: printf("WTTW Chicago\n"); break; case 12: printf("WISN Milwaukee\n"); break; default: printf("No Signal Available\n"); }
Sentencia switch
switch Ejemplo 2
switch(letter) { case 'a': printf("Letter 'a' found.\n"); break; case 'b': printf("Letter 'b' found.\n"); break; case 'c': printf("Letter 'c' found.\n"); break; default: printf("Letter not in list.\n"); }
Sentencia switch
switch Ejemplo 3
switch(channel) Apply this case to channel 4, 5, { 6, and 7 case 4 ... 7: printf("VHF Station\n"); break; case 9 ... 12: printf("VHF Station\n"); break; case 3: Case 3 and 8 are allowed to fall case 8: through to case 13 case 13: printf("Weak Signal\n"); break; case 14 ... 69: printf("UHF Station\n"); break; default: printf("No Signal Available\n"); }
Syntax
Lazos for
Lazos for
Syntax
Diagrama de Flujo
START
expression1 expression3
Modifica la variable del loop
i = 0
i++
i < n
TRUE
expression2?
FALSE
statement
END
Lazos for
Lazos for
Lo
que sea deen las tres expresiones puede ser blanquedo (los puntos y comas deben permanecer) Si expresion1 o expresion3 fallan , sus acciones simplemente desaparecen If expression2 falla, esta siempre se asume como true
Loops infinitos Un loop for sin cualquier expresin permite la ejecucin indefinida (puede dejar el lazo va la sentencia break )
Note
for ( ; ; ) { }
Syntax
Lazo while
while (expresion) sentencia
Si
expresion es true, sentencia puede ser ejecutada y entonces expresion puede ser re-evaluada determinar puede o no ejecutarse la sentencia otra vez Es posible que sentencia no se ejecute nunca si expresion es falsa cuando esta es evaluada primero
Lazos While
Diagrama de flujo
Syntax
TRUE
expression?
FALSE
statement
END
Lazos While
Ejemplo
Ejemplo
Contador del Loop inicializado fuera del loop Condicin de chekeo inicial al iniciar el loop
int i = 0;
Lazos While
La
expresion siempre debe estar all, es la diferencia con un loop for while se usa mas a menudo que for cuando se implementan loops infinitos, aunque es solamente una cuestin de gusto personal Frecuentemente usada para un loop min en el programa
Nota
Infinitos Loops Un loop while con expression = 1 se ejecuta indefinidamente (se ouede abandonar el loop via sentenciabreak )
while (1) { }
Syntax
Loop do-while
do statement while (expression);
es ejecutada y entonces la expresion es evaluada para determinar cuando o no se ejecuta sentencia statement se ejecutar siempre por lo menos una vez, incluso si la expresin es falsa cuando el lazo comienza
sentencia
Loop do-while
Diagrama de flujo
Syntax
expression?
FALSE
END
int i = 0; do {
0 1 2 3 4
Syntax
Sentencia break
break;
Causa
Existe
una sentencia switch de modo que la ejecucin no fracase a despus clausula case
Sentencia break
Diagrama de flujo con un loop while
Sintaxis
break;
START
TRUE
expression? statement break statement
FALSE
END
Sentencia break
Ejemplo
Ejemplo
int i = 0; while (i < 10) Existe en el loop si i = 5. { Iteraciones 6-9 no son ejecutadas. i++; if (i == 5) break; printf("Loop iteration #%d\n", i); }
Salida esperada: Loop Loop Loop Loop iteration iteration iteration iteration 1 2 3 4
Syntax
Sentencia continue
continue;
Hace
Sentencia continue
Syntax
continue;
START
TRUE
expression? statement continue statement
FALSE
END
Sentencia continue
Ejemplo
Ejemplo int i = 0; while (i < 6) Salta la iteracin remanente cuando { i = 2. La iteracin 2 puede no i++; ejecutarse. if (i == 2) continue; printf("Loop iteration #%d\n", i); }
Resultado esperado:
1 3 4 5
Iteracin 2 No es ejecutada