SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
1
Fundamentos de Programación
Ingeniería Informática
en Sistemas de Información
Estructuras de selección
Alicia Troncoso
2
Contenido
l  Sentencias y composición
l  Estructuras de selección
l  Sentencia if
l  Sentencia if-else
l  Sentencias if-else anidadas
l  Sentencia switch
l  Ejercicios
3
Sentencias
l  Un programa se compone de un conjunto de sentencias
(instrucciones).
l  Las sentencias puede ser básicas:
l  printf(“Holan”);
l  scanf(“%d”,&horas);
l  x = x+23;
l  Para cualquier programa no trivial necesitaremos más de una
sentencia básica. Por tanto necesitamos mecanismos para
crear sentencias más complicadas a partir de las sentencias
básicas. A las sentencias que combinan varias sentencias
básicas les llamaremos sentencias compuestas.
4
Mecanismos de composición
l  Existen tres mecanismos básicos de crear
sentencias compuestas a partir de
sentencias básicas:
l  Secuencia: “Ve a la panadería. Pide un pan.
Págalo. Tráelo a casa. Córtalo en pedazos.”
l  Selección: “Si llueve coge el paraguas, si no coge
el abanico.”
l  Repetición: “Copia 100 veces ‘No hablaré en
clase’”
5
Composición secuencial
l  En C la composición secuencial se consigue:
l  Abriendo la secuencia con una llave {
l  Utilizando el punto y coma para unir las
sentencias que se desean componer
l  Cerrando la secuencia con otra llave }
{
s_1;
s_2;
s_3;
}
Ejecuta la sentencia s_1, cuando
termines, ejecuta la sentencia
s_2 y cuando termines ejecuta la
sentencia s_3
6
Estructuras de selección
l  En ocasiones es necesario ejecutar un
conjunto de sentencias u otras en función de
la situación en la que se encuentra el
programa.
l  En C existen dos sentencias que permiten
crear estructuras de selección:
l  if
l  switch
7
Sentencia if
if (condición) sentencia
Si la condición es verdadera ejecuta la sentencia.
Si es falsa no ejecuta nada.
8
Ejemplo 1
Programa que lee dos números enteros (n1 y n2) y en
el caso de que el primero sea mayor que el segundo
muestra “n1 es mayor que n2”
9
Ejemplo 2
Programa que lee dos números enteros (n1 y n2) y si
el primer número es mayor que cero muestra “n1 es
mayor que cero”. Además, si el segundo número es
mayor que cero muestra “n2 es mayor que cero”
10
Sentencia if-else
if (condición)
sentencia_1
else
sentencia_2
Si la condición es verdadera ejecuta
la sentencia sentencia_1. Si es falsa
ejecuta la sentencia sentencia_2
11
Ejemplo
Programa que lee dos números enteros (n1 y n2) y si el
primer número es múltiplo del segundo muestra “n1 es
múltiplo de n2”. En caso contrario muestra “n1 no es
múltiplo de n2”.
12
Múltiples alternativas
l  1 alternativa -> if
l  2 alternativas -> if-else
l  ¿Cómo podemos hacer si tenemos más de 2
alternativas?
l  Ejemplo: Programa que lee un numero real
que representa la nota de una asignatura y
muestra si es un suspenso [0,5), un
suficiente [5,6.5), un notable [6.5,8.5) o un
excelente [8.5,10]
l  En ese caso podemos utilizar sentencias if-
else anidadas
13
Sentencias if-else anidadas
if (condicion_1)
sentencia_1;
else if (condicion_2)
sentencia_2;
…
else if (condicion_n-1)
sentencia_n-1;
else
sentencia_n;
Si la condición condicion_1 es
verdadera ejecuta la sentencia
sentencia_1. Si no lo es, analiza
la condición condicion_2 y si es
verdadera, ejecuta la sentencia
sentencia_2
…
si finalmente ninguna de las n-1
condiciones son verdaderas,
ejecuta la sentencia sentencia_n
14
Ejemplo
Programa que lee un numero real que
representa la nota numérica de una asignatura
y muestra si es un suspenso [0,5), un suficiente
[5,6.5), un notable [6.5,8.5) o un excelente
[8.5,10]
15
Alternativas aún más múltiples
l  En ocasiones se da el caso de que existen
muchas alternativas que dependen de una
única variable.
l  Ejemplo: Programa que lee un numero
entero que representa un mes (1 -> enero,
12->diciembre) y muestra el nombre del mes.
l  Podríamos utilizar sentencias if-else
anidadas, pero queda demasiado extenso.
16
Sentencia switch
switch (selector) {
case etiq_1:
sentencia_1;
…
case etiq_n:
sentencia_n;
default:
sentencia_n+1;
}
Comprueba si el valor del
selector es el de la etiqueta
etiq_1. Si no lo es comprueba
etiq_2,…
Si encuentra una etiqueta
etiq_i que coincide con el
valor del selector. A partir de
ese momento ejecuta las
sentencias desde sentencia_i
hasta sentencia_n+1.
En otro caso ejecuta la
sentencia sentencia_n+1.
17
Sentencia switch-break
switch (selector) {
case etiq_1:
sentencia_1;
break;
…
case etiq_n:
sentencia_n;
break;
default:
sentencia_n+1;
}
Comprueba si el valor del
selector es el de la etiqueta
etiq_1. Si no lo es comprueba
etiq_2,…
Si encuentra una etiqueta
etiq_i que coincide con el
valor del selector ejecuta las
sentencia sentencia_i.
En otro caso ejecuta la
sentencia sentencia_n+1
18
Ejemplo
Programa que lee un número entero que
representa un mes (1 -> enero, 12->diciembre)
y muestra el nombre del mes.

Más contenido relacionado

Similar a Sentencias If y Else.pdf

¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?grachika
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2yanburbano
 
Estructuras de Control C++
Estructuras de Control C++Estructuras de Control C++
Estructuras de Control C++Jorge Leonardo
 
Estructuras de control. Secuencial, condicional y repetitivas..pdf
Estructuras de control. Secuencial, condicional y repetitivas..pdfEstructuras de control. Secuencial, condicional y repetitivas..pdf
Estructuras de control. Secuencial, condicional y repetitivas..pdfnicolaspelaez3
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionalesSTEVENZAFIRO
 
Estructuras de control de flujo
Estructuras de control de flujoEstructuras de control de flujo
Estructuras de control de flujoAliandroMejias
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-elseSNPP
 
Parcial de introduccion
Parcial de introduccionParcial de introduccion
Parcial de introduccionfederperez99
 
Universidad fermin toro
Universidad fermin toroUniversidad fermin toro
Universidad fermin torofoliche
 
Semana 5 - Principios de Algoritmos.pdf
Semana 5 - Principios de Algoritmos.pdfSemana 5 - Principios de Algoritmos.pdf
Semana 5 - Principios de Algoritmos.pdfCarlosJahnsen3
 

Similar a Sentencias If y Else.pdf (20)

¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?¿Como hacer un pseudocodigo y diagrama de flujo?
¿Como hacer un pseudocodigo y diagrama de flujo?
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2
 
Guia 4
Guia 4Guia 4
Guia 4
 
Python02
Python02Python02
Python02
 
Estructuras de Control C++
Estructuras de Control C++Estructuras de Control C++
Estructuras de Control C++
 
Estructuras de control. Secuencial, condicional y repetitivas..pdf
Estructuras de control. Secuencial, condicional y repetitivas..pdfEstructuras de control. Secuencial, condicional y repetitivas..pdf
Estructuras de control. Secuencial, condicional y repetitivas..pdf
 
20.estructuras-control.pdf
20.estructuras-control.pdf20.estructuras-control.pdf
20.estructuras-control.pdf
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionales
 
Estructuras de control de flujo
Estructuras de control de flujoEstructuras de control de flujo
Estructuras de control de flujo
 
5.1 instruccion if-else
5.1 instruccion if-else5.1 instruccion if-else
5.1 instruccion if-else
 
Parcial de introduccion
Parcial de introduccionParcial de introduccion
Parcial de introduccion
 
Taller Python
Taller PythonTaller Python
Taller Python
 
Pseucodigos
PseucodigosPseucodigos
Pseucodigos
 
Universidad fermin toro
Universidad fermin toroUniversidad fermin toro
Universidad fermin toro
 
Práctica 10
Práctica 10Práctica 10
Práctica 10
 
condicionales
condicionalescondicionales
condicionales
 
06 Desarrollo Programas Estructurados
06 Desarrollo Programas Estructurados06 Desarrollo Programas Estructurados
06 Desarrollo Programas Estructurados
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Semana 5 - Principios de Algoritmos.pdf
Semana 5 - Principios de Algoritmos.pdfSemana 5 - Principios de Algoritmos.pdf
Semana 5 - Principios de Algoritmos.pdf
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 

Último

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Último (11)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Sentencias If y Else.pdf

  • 1. 1 Fundamentos de Programación Ingeniería Informática en Sistemas de Información Estructuras de selección Alicia Troncoso
  • 2. 2 Contenido l  Sentencias y composición l  Estructuras de selección l  Sentencia if l  Sentencia if-else l  Sentencias if-else anidadas l  Sentencia switch l  Ejercicios
  • 3. 3 Sentencias l  Un programa se compone de un conjunto de sentencias (instrucciones). l  Las sentencias puede ser básicas: l  printf(“Holan”); l  scanf(“%d”,&horas); l  x = x+23; l  Para cualquier programa no trivial necesitaremos más de una sentencia básica. Por tanto necesitamos mecanismos para crear sentencias más complicadas a partir de las sentencias básicas. A las sentencias que combinan varias sentencias básicas les llamaremos sentencias compuestas.
  • 4. 4 Mecanismos de composición l  Existen tres mecanismos básicos de crear sentencias compuestas a partir de sentencias básicas: l  Secuencia: “Ve a la panadería. Pide un pan. Págalo. Tráelo a casa. Córtalo en pedazos.” l  Selección: “Si llueve coge el paraguas, si no coge el abanico.” l  Repetición: “Copia 100 veces ‘No hablaré en clase’”
  • 5. 5 Composición secuencial l  En C la composición secuencial se consigue: l  Abriendo la secuencia con una llave { l  Utilizando el punto y coma para unir las sentencias que se desean componer l  Cerrando la secuencia con otra llave } { s_1; s_2; s_3; } Ejecuta la sentencia s_1, cuando termines, ejecuta la sentencia s_2 y cuando termines ejecuta la sentencia s_3
  • 6. 6 Estructuras de selección l  En ocasiones es necesario ejecutar un conjunto de sentencias u otras en función de la situación en la que se encuentra el programa. l  En C existen dos sentencias que permiten crear estructuras de selección: l  if l  switch
  • 7. 7 Sentencia if if (condición) sentencia Si la condición es verdadera ejecuta la sentencia. Si es falsa no ejecuta nada.
  • 8. 8 Ejemplo 1 Programa que lee dos números enteros (n1 y n2) y en el caso de que el primero sea mayor que el segundo muestra “n1 es mayor que n2”
  • 9. 9 Ejemplo 2 Programa que lee dos números enteros (n1 y n2) y si el primer número es mayor que cero muestra “n1 es mayor que cero”. Además, si el segundo número es mayor que cero muestra “n2 es mayor que cero”
  • 10. 10 Sentencia if-else if (condición) sentencia_1 else sentencia_2 Si la condición es verdadera ejecuta la sentencia sentencia_1. Si es falsa ejecuta la sentencia sentencia_2
  • 11. 11 Ejemplo Programa que lee dos números enteros (n1 y n2) y si el primer número es múltiplo del segundo muestra “n1 es múltiplo de n2”. En caso contrario muestra “n1 no es múltiplo de n2”.
  • 12. 12 Múltiples alternativas l  1 alternativa -> if l  2 alternativas -> if-else l  ¿Cómo podemos hacer si tenemos más de 2 alternativas? l  Ejemplo: Programa que lee un numero real que representa la nota de una asignatura y muestra si es un suspenso [0,5), un suficiente [5,6.5), un notable [6.5,8.5) o un excelente [8.5,10] l  En ese caso podemos utilizar sentencias if- else anidadas
  • 13. 13 Sentencias if-else anidadas if (condicion_1) sentencia_1; else if (condicion_2) sentencia_2; … else if (condicion_n-1) sentencia_n-1; else sentencia_n; Si la condición condicion_1 es verdadera ejecuta la sentencia sentencia_1. Si no lo es, analiza la condición condicion_2 y si es verdadera, ejecuta la sentencia sentencia_2 … si finalmente ninguna de las n-1 condiciones son verdaderas, ejecuta la sentencia sentencia_n
  • 14. 14 Ejemplo Programa que lee un numero real que representa la nota numérica de una asignatura y muestra si es un suspenso [0,5), un suficiente [5,6.5), un notable [6.5,8.5) o un excelente [8.5,10]
  • 15. 15 Alternativas aún más múltiples l  En ocasiones se da el caso de que existen muchas alternativas que dependen de una única variable. l  Ejemplo: Programa que lee un numero entero que representa un mes (1 -> enero, 12->diciembre) y muestra el nombre del mes. l  Podríamos utilizar sentencias if-else anidadas, pero queda demasiado extenso.
  • 16. 16 Sentencia switch switch (selector) { case etiq_1: sentencia_1; … case etiq_n: sentencia_n; default: sentencia_n+1; } Comprueba si el valor del selector es el de la etiqueta etiq_1. Si no lo es comprueba etiq_2,… Si encuentra una etiqueta etiq_i que coincide con el valor del selector. A partir de ese momento ejecuta las sentencias desde sentencia_i hasta sentencia_n+1. En otro caso ejecuta la sentencia sentencia_n+1.
  • 17. 17 Sentencia switch-break switch (selector) { case etiq_1: sentencia_1; break; … case etiq_n: sentencia_n; break; default: sentencia_n+1; } Comprueba si el valor del selector es el de la etiqueta etiq_1. Si no lo es comprueba etiq_2,… Si encuentra una etiqueta etiq_i que coincide con el valor del selector ejecuta las sentencia sentencia_i. En otro caso ejecuta la sentencia sentencia_n+1
  • 18. 18 Ejemplo Programa que lee un número entero que representa un mes (1 -> enero, 12->diciembre) y muestra el nombre del mes.