La sentencia condicional - más condicionada que antes
DenitzelDocumentos de Investigación23 de Octubre de 2017
3.529 Palabras (15 Páginas)219 Visitas
La sentencia condicional - más condicionada que antes
Concluimos nuestra última discusión sobre sentencias condicionales con la promesa de que introduciría una forma más compleja y flexible pronto. Empezamos nuestra historia con una simple frase que leemos: Si el tiempo es bueno, vamos a ir a dar un paseo.
Nota - no hay una palabra sobre lo que ocurrirá si llueve gatos y perros. Sólo sabemos que sin duda no salir a la calle, pero lo que nos gustaría hacer en su lugar no se menciona. Es posible que desee planificar algo en caso de mal tiempo, también.
Podemos decir, por ejemplo: Si el tiempo es bueno vamos a ir a dar un paseo, de lo contrario vamos a ir a un teatro . Esta frase hace que nuestros planes más resistentes a los caprichos del destino - sabemos lo que haremos si se cumplen las condiciones y sabemos lo que vamos a hacer, si no todo va nuestro camino. En otras palabras, tenemos un plan “B”.
Por suerte, el lenguaje “C” nos permite expresar planes alternativos. Hacemos esto con un segundo, un poco más compleja forma de la sentencia condicional - aquí es →
Por lo tanto, tenemos una nueva palabra: lo demás - se trata de una palabra ( palabra reservada ). Una declaración que se inicia con los demás nos dice qué hacer si la condición especificada para el caso de que no se cumpla .
Por lo que el if-else ejecución es el siguiente:
- si la condición es “ verdadera ” (su valor no es igual a cero) el perform_if_condition_true se ejecuta y la sentencia condicional llega a su fin;
- si la condición es “ falsa ” (que es igual a cero) el perform_if_condition_false se ejecuta y la sentencia condicional llega a su fin.
Así como en otras formas simplificadas de esta instrucción, como los que ya hemos encontrado, tanto si y otro puede contener sólo una instrucción . Si vas a escribir más de una instrucción, usted tiene que utilizar un bloque, como en el ejemplo aquí →
if(TheWeatherIsGood) {
GoForAWalk(); HaveFun();
}else{
GoToATheatre(); EnjoyTheMovie();
} HaveLunch()
La sentencia condicional - más condicionada que antes
Ahora vamos a hablar de dos casos especiales de la sentencia condicional. En primer lugar, consideremos el caso sorprendente cuando la instrucción colocada tras si es otro caso .
Escuchamos lo que hemos previsto para este domingo: Si el tiempo lo permite, vamos a ir a dar un paseo. Si nos encontramos con un buen restaurante, tendremos el almuerzo allí. De lo contrario, vamos a comer un sándwich. Si el tiempo es malo, vamos a ir al teatro. Si no hay entradas, vamos a ir de compras en el centro comercial más cercano.
Terriblemente complicado, ¿verdad? Vamos a escribir la misma en el lenguaje “C”. Considere el código aquí cuidadosamente →
Vamos a examinar dos puntos importantes:
- tal uso de la si la declaración se conoce como anidación ; Recuerde que cada persona se refiere a la antigua más cercano si el que no coincida con ninguna otra cosa ; necesitamos saber esto para determinar cómo el IFS y que mas se emparejan;
- considerar cómo la muesca mejora la legibilidad y hace hincapié en la anidación de las sentencias condicionales interiores.
if(TheWeatherIsGood) if(NiceRestaurantFound) HaveLunch(); else EatASandwich(); else if(TicketsAvailable) GoToATheatre(); else GoShopping();
La sentencia condicional - más condicionada que antes
El segundo caso especial se asemeja un poco de anidación, pero no hay muchas más similitudes. Una vez más, vamos a cambiar nuestros planes y expresar de la siguiente manera: Si el tiempo lo permite, vamos a ir de paseo, de lo contrario si conseguimos entradas, vamos a ir al teatro, de lo contrario si hay mesas libres en el restaurante , nos vamos para el almuerzo; si todo falla vamos a regresar a casa y jugar al ajedrez.
¿Se dio cuenta cuántas alternativas diferentes hay? Vamos a escribir el mismo escenario en el lenguaje “C” →
Esta forma de montaje posterior si las declaraciones se llama una cascada . Observe cómo el sangrado mejora la legibilidad del código.
Ahora, vamos a nuestras mentes funcionan a cabo todo lo que les hemos hablado de las sentencias condicionales, mientras prestamos atención a nuestros viejos amigos:tipos int, char y float . Vamos a conocer a sus hermanos.
if(TheWeatherIsGood) GoForAWalk();
else if(TicketsAvailable)
GoToATheatre();
else if(TableAvailable)
GoForALunch();
else
PlayChessAtHome();
3.2.1 No sólo el int es un entero
Parecería que la vida del desarrollador podría ser organizado lo suficientemente bien como si tuvieran tipo int para operar con números enteros, el tipo de carbón para manipular signos y tipo de flotador para los cálculos de punto flotante.
Sin embargo, esta práctica ha demostrado que un repertorio tan estrecha de tipos puede plantear algunos problemas.
La mayoría de los ordenadores actualmente en uso almacenar enteros utilizando 32 bits (4 bytes); esto significa que podemos operar los enteros dentro de la gama de [-2147483648 2147483647 ..]. Puede ocurrir que:
- no necesitamos tales valores grandes; si contamos las ovejas, es poco probable que tendremos que contar con dos mil millones de ellos, por lo que ¿por qué perder la mayoría de estos 32 bits si no los necesitamos;
- necesitamos valores mucho más grandes; por ejemplo, tenemos la intención de calcular el número exacto de los seres humanos que viven en la Tierra; en este caso, necesitamos más de 32 bits para representar ese número,
- esto nos lleva a otra observación - después de todo, el número de habitantes en la Tierra nunca será un número negativo; parece como un verdadero desperdicio que hasta la mitad del rango permitido nunca serán usados.
[pic 1]
Por estas razones, el lenguaje “C” proporciona algunos métodos para definir con precisión la forma en que la intención de almacenar números grandes / pequeñas.Esto permite que el compilador para asignar memoria, ya sea más pequeño de lo normal (por ejemplo, 16 bits en lugar de 32) o más grande de lo normal (por ejemplo, 64 bits en lugar de 32). También podemos declarar que garantizamos que el valor almacenado en la variable será no negativo .
En este caso la anchura de de la variable de rango no cambia , sino que se desplazahacia los números positivos. Esto significa que en lugar del rango de -2147483648 2147483647 .. obtenemos el rango de 0 .. 4294967295.
Para especificar los requisitos de memoria, podemos utilizar algunas palabras clave adicionales llamados modificadores :
- long- se utiliza para declarar que es necesario un mayor número de enterosque el estándar uno;
- short - se utiliza para determinar que necesitamos una gama más reducida de enteros que el estándar uno;
- unsigned - se utiliza para especificar que se necesita una variable sólo para los números no negativos; aunque puede ser sorprendente, podemos usar este modificador junto con el tipo Char ; vamos a explicar cómo pronto.
Tenga en cuenta que algunos compiladores pueden no ser capaces de distinguir los datos de tipo int y largo . Pueden ser sinónimos. Si desea forzar al compilador que use la representación real de largo para un número específico, puede utilizar la larga larga tipo.
[pic 2]
La variable contador utilizara menos bits que el estándar int (por ejemplo, podría ser de 16 bits de longitud - en este caso, la gama de la variable será suprimida a la gama de [-32768-32.767]) →
La palabra int puede ser omitido como se consideran todas las declaraciones que se especifique int por defecto, como esto:
...