Beruflich Dokumente
Kultur Dokumente
Por otro lado los ciclos de repetición permiten que un grupo de líneas de código
sean ejecutadas varias veces, sin necesidad de reescribirlas 2, 3, 4 o n veces de
acuerdo a la cantidad de veces que se requiriera repetirlas, haciendo factible la
generación de algoritmos generales, es decir algoritmos no limitados a una cierta
cantidad de repeticiones, ya que si no existiera forma de hacerlo, seguramente
habría que indicar que el algoritmo se limita a solucionar casos para un máximo
numero de repeticiones, ya que sería imposible escribir un numero infinito de
líneas para abarcar cualquier caso.
CONDICION
PASOS A SEGUIR
PASOS A SEGUIR
SI LA CONDICIÓN
SI LA CONDICIÓN
NO ES CIERTA
ES CIERTA
(FALSA)
Además hay una regla más en la sintaxis de if-else, que dice, que si el código a
ejecutar en caso de que la condición sea cierta o falsa, es una sola línea de
código, entonces el conjunto de llaves correspondiente es opcional.
if (condición)
Una línea de código en caso de que la condición sea cierta;
else
Una línea de código en caso de que la condición sea falsa;
a) if(x==5) b) if(x==5)
{ z=1;
z=1; else
} z=0;
else
{
z=0;
}
Observaciones: cualquiera de las dos opciones anteriores es válida, en la opción
b), se han suprimido las llaves, ya que como se mencionó, si el código a ejecutar,
es solo una instrucción, entonces es opcional utilizarlas. Por otro lado observe que
en la condición se utiliza el doble símbolo de igual (x==5), que indica comparación,
pero si por error se utiliza un solo símbolo de igual (x=5), esto no es un error de
sintaxis, pero generará un “bug”, ya que lo que se está indicando es que se le
asigne un valor de 5 a la variable x, y por otro lado tiene un efecto tal que siempre
se tomará como verdadera la condición.
a) if(x!=0) b) if(x!=0)
{ {
z=1; x=1;
m=2; m=2;
} }
Else else
{ z=0;
z=0;
}
Observaciones: note como en la opción b), ahora solo se han suprimido las llaves
en el código a ejecutar en el caso de que la condición sea falsa (else), pues este
código es una sola instrucción, y no se pueden suprimir las llaves cuando es
verdadera ya que son dos instrucciones. Observe también el uso del operador
para denotar “distinto de” (!=).
Ejemplo 3: En caso de que una variable sea idéntica a un valor de 2 y otra mas
tenga un valor de 3, mostrar un mensaje en pantalla de “condición encontrada”,
de no ser así en otra variable calcular la suma de las dos variables de la
condición.
a) if (x==2) b) if(x==2)
{ if(z==3)
if(z==3) printf(“Condición encontrada”);
{ else
printf(“Condición encontrada”); s=x+z;
}
}
else c) if ( (x==2) && (z==3))
{ printf(“Condición encontrada”);
s=x+z; else
} s=x+z;
Observaciones: aquí vemos tres soluciones al problema descrito, la opción a)
representa el código mas amplio, donde no se ha buscado omitir llaves aún
cuando sea posible (una sola instrucción). En la opción b) y c) se han omitido ya
todas las llaves posibles. Note como en los códigos de a) y b) dentro del código a
ejecutar cuando la condición del primer “if” sea cierta, se encuentra otro “if”, esto
se conoce como anidamiento y es muy importante tener cuidado con las llaves
que se abren ({) y cierran (}), para no cometer errores de sintaxis o peor aún, de
semántica. Note también como en este segundo “if” en las opciones a) y b) no ha
sido utilizado con “else”, que como ya se dijo es opcional. El “else” que aparece
en la opción a) y b) corresponde al primer “if”. Ahora observe el código de la
opción c), la condición dentro del “if”, es una condición múltiple, que utiliza un
conector lógico entre condiciones simples, aquí el conector lógico utilizado es una
“AND” “Y”. Para que una condición múltiple unida con conector “AND” sea cierta
todas las condiciones simples deben serlo también, lo puede entender si analiza el
enunciado: “si x es igual a 2 y z es igual a 3”. Note como es quizás más fácil la
codificación de esta manera, que separando en dos “if”, sin embargo hay que
tener cuidado de armar la condición múltiple con los conectores lógicos
adecuados, y el uso de paréntesis para agrupar las condiciones simples.
If ( ! ( (x>=10) || (z<20) ) )
{
temporal= x;
x=z;
z=temporal;
}
Observaciones: note el símbolo ”!” que indica negar toda la condición escrita
entre paréntesis después de este símbolo, por lo que si el enunciado “ x es mayor
o igual a 10, ó ,z es menor que 20” es cierto, toda la condición global es falsa, por
la negación, y viceversa.
Observamos el uso de || para el conector lógico “OR”, una condición múltiple unida
por este conector será cierta si al menos una de las condiciones simples lo es.
Por otro lado podemos analizar también el intercambio de valores entre las dos
variables, que de manera descuidada podríamos en primera instancia haberlo
pensarlo simplemente como:
x=z;
z=x;