26
9. Control de Flujo

9. Control de Flujo. 9.1 Clase Console Clase Console, perteneciente al namespace System. Representa la entrada y salida estándar para aplicaciones

Embed Size (px)

Citation preview

Page 1: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

9. Control de Flujo

Page 2: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

9.1 Clase Console

Page 3: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Clase Console, perteneciente al namespace System.

Representa la entrada y salida estándar para aplicaciones de Consola.

Page 4: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Podemos escribir sin santo de línea:◦ Console.Write(“Holi,”);◦ Console.Write(“ teni”);◦ Console.Write(“ polili?.\n”);

Podemos escribir con salto de línea:◦ Console.WriteLine(“Holi, tení pololi?”);

Page 5: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Podemos escribir variables dentro de la salida:◦ Console.WriteLine(“El cuadrado de largo {0} tiene area

{1}”, largo, area);

Cada variable que queramos insertar en la salida, debe ir después del texto separadas por comma.

Y para visualizarlas debemos colocar el número de la variable entre llaves.

Page 6: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Podemos leer un carácter como entero.◦ int dato = Console.Read();

Podemos leer una línea.◦ String linea = Console.ReadLine();

La conversión se hace con los métodos Parse de los objetos que representan a los tipos de datos básicos.◦ Double.Parse(Console.ReadLine() );◦ Double.Parse(Console.ReadLine() );◦ Double.Parse(Console.ReadLine() );

Page 7: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

9.2 Control de Flujo

Page 8: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Son tipos de datos que representan SÓLO 2 valores: true o false.

Tipo de datos: bool.

Ejemplos:bool continuar;bool muerto;bool pause;

Page 9: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Un programa NO ES SOLO una secuencia de sentencias que se deben realizar en un orden específico:◦ Colocarse los pantalones.◦ Colocarse los calcetines.◦ Colocarse los zapatos.◦ Abrocharse los zapatos.◦ Caminar.

Page 10: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Un programa tiene decisiones o iteraciones, y según ciertas características que sucedan en un momento determinado, se va a ejecutar una sentencia.

Un enemigo, necesita decidir si atacar o no. En base a ciertos datos que recopila del mundo, y del jugador.

Page 11: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

9.3 Control de Flujo de Selección

Page 12: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Permiten decidir entre distintos cursos de acción en función de ciertos valores.

if (<condicion>) {   <sentencia1>;}

else  {   <sentencia2>;}

Page 13: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Permiten decidir entre distintos cursos de acción en función de ciertos valores.

if (<condicion>) {   <sentencia1>;}if else(<condicion>) {   <sentencia1>;}…else  {   <sentencia2>;}

Page 14: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Se puede administrar un fármaco X a un paciente ?

Page 15: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Qué transporte utilizo para viajar ?

¿En qué viajar?

¿Voy al Instituto?

¿Voy a juntare con una mina?

¿Voy a carretear?

¿Estoy atrasado?

¿Estoy justo?¿Estoy con

tiempo?¿Estoy

atrasado?¿Estoy justo?

¿Estoy con tiempo?

¿Mis amigos están cerca?

¿Mis amigos no están cerca?

Colectivo

Metro

Micro

Taxi

Colectivo

Metro

Auto

Metro

Si

Si

No

Si

Si

No

No

No

SiSi

Si

Entonces viaja en:

Page 16: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

==, !=, >, <, >=, <=

== Igual a

!= No igual a

> Mayor que

< Menor que

>= Mayor o igual que

<= Menor o igual que

Page 17: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

==, !=, >, <, >=, <=

Page 18: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

!, &&, ||

a b a && b a || b

true true true true

true false false true

false true false true

false false false false

a !a

true false

false true

Page 19: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Sirve para tomar decisiones. En videojuegos típicamente usado para la IA de

enemigos.

if( enemigo.distancia( protagonista ) < dist_min)enemigo.atacar();

elseenemigo.patrullar();

Page 20: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

int mayor;

if (a > b) {   mayor = a;}else  {  mayor = b;}

Console.WriteLine(“el numero mayor es: {0}”, mayor);

Page 21: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

int mayor;

mayor = (a > b) ? a : b;

Console.WriteLine(“el numero mayor es: {0}”, mayor);

<condicion> ? <sentencia1> : <sentencia2>;

Page 22: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

!, &&, ||

Page 23: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Su objetivo es comprobar varios posibles valores constantes de una expresión.

switch (<variable>) {

case <expresión_constante>: [<sentencias>] [break;]

. . . [default : [<sentencia>]]

}

Page 24: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

switch(letra) {

case 'a':case 'e':case 'i':case 'o':case 'u':

EsVocal = true; break;

default: EsVocal = false;break;

}

Page 25: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones

Usado cuando se tiene un número finito de valores para una variable.

Típicamente usado para el diseño de menús.

Típicamente usado para el manejo de estados. (usando enum)

switch(tecla){

case W:protagonista.MoverUp();break;

case A:protagonista.MoverLeft();break;

case D:protagonista.MoverRight();break;

case S:protagonista.MoverDown();break;

case ESPACE:protagonista.Disparar()break;

case ESC:continuar = false;break;

default:break;

}

Page 26: 9. Control de Flujo. 9.1 Clase Console  Clase Console, perteneciente al namespace System.  Representa la entrada y salida estándar para aplicaciones