> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/ud1-introduccion-a-programacion/introducion-a-programacion/elementos-de-un-algoritmo/sentencias-condicionales.md).

# Sentencias condicionales

Unha sentencia condicional é una estructura de control que permite dividir un algoritmo ou programa en diferentes ramas, que se executarán en función que que se cumplan ou non certas condicións lóxicas. Distinguimos os seguintes tipos de condicionais:

<figure><img src="/files/tpS5M6aLNAh3UCtcBUUH" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2l8pRfSE4XApUAKckXQ8" alt=""><figcaption></figcaption></figure>

## Condicional simple (IF)

O programa vai a realizar unha serie de instrucciones adicionales en función do cumplimento de unha condición. Este tipo de condicional establece un camiño adicional baixo determinadas circunstancias. Unha utilización común de este tipo de condicionais é a de validación de parámetros.

<figure><img src="/files/qR35viyJ49rnZwWljCUn" alt=""><figcaption></figcaption></figure>

```
Proceso numeroPar
	//El programa recibe un número y devuelve el número par mas cercano
	Definir num como Entero;
	ESCRIBIR "Introduzca un numero:";
	LEER num;
	Si num%2 == 1 ENTONCES
		num<-num + 1;
	FinSi
	ESCRIBIR "El numero par mas cercano es:", num;
FinProceso
```

## Condicional doble (IF - ELSE)

Este tipo de condicional establece dous camiños con instruccións diferenciadas en función do cumplimento ou non de unha condicion.

<figure><img src="/files/xKpaSkOEAAlQoXOTeqUV" alt=""><figcaption></figcaption></figure>

```
Proceso descuentosArticulo
    Escribir "Introduce el precio del artículo: ";
    Leer precio;	
    Si precio > 100 Entonces
        total <- precio * 0.90  ; 
        Escribir "El precio es mayor a 100, se aplica 10% de descuento. Total a pagar: ", total;
    SiNo
        total <- precio * 0.95   ; 
        Escribir "El precio es 100 o menor, se aplica 5% de descuento. Total a pagar: ", total;
    FinSi
FinProceso
```

## Condicional anidados (IF - ELSE Anidados)

A utilización de condicionáis anidados, vai a permitir o de ramas de decisión a diferentes niveis:

<figure><img src="/files/7V4bjXYYKI4zVnUDQJyB" alt=""><figcaption></figcaption></figure>

```
Proceso precioVenta
	//El programa determina el precio de venta 
	Definir precio,importe como Real;
	Definir medio Como Caracter;
	Definir mensaje Como Cadena;
	ESCRIBIR "Introduzca el precio del articulo:";
	LEER precio;
	ESCRIBIR "Introduzca el medio de pago: Tarjeta[T] / Efectivo [E]";
	LEER medio;
	mensaje <- " ";
	Si (medio <> 'E' Y medio <> 'T') ENTONCES
		mensaje <- "El medio de pago seleccionado no es correcto";
	Sino 
		Si medio = 'T' ENTONCES
			importe <- precio - 0.03 * precio;
		Sino Si medio = 'E' ENTONCES
			importe <- precio + 0.05*precio;	
		FinSi
		mensaje <- Concatenar("El importe a pagar es ", ConvertirATexto(importe));
	FinSi
	ESCRIBIR mensaje;
FinProceso
```

## Condicional según (Switch - Case)

Este tipo de condicional, é unha sentenza de control que nos vai permitir, segundo o valor de una variable de control, dividir o código en bloques. Vamos empregar a sentenza switch case en aqueles caso nos que a partir de una variable, aparezan moitas ramas.

<figure><img src="/files/ml0hU9BcUI7vnJ6A7N7j" alt=""><figcaption></figcaption></figure>

Calqueira problema que se solucione con un Switch - Case, podese solucionar tamén con un if - else anidado.

```
Proceso MenuCafeteria;
    Definir opcion Como Entero;
    Definir precio Como Real;

    Escribir "Escoje una bebida:";
    Escribir "1. Café";
    Escribir "2. Té";
    Escribir "3. Zumo";
    Leer opcion;

    Segun opcion Hacer
        1:
            precio <- 1.50;
            Escribir "Escogiste Café. Precio: ", precio, " €";
        2:
            precio <- 1.20;
            Escribir "Escogiste Té. Precio: ", precio, " €";
        3:
            precio <- 2.00;
            Escribir "Escogiste Zumo. Precio: ", precio, " €";
        De Otro Modo:
            Escribir "Opción no válida";
    FinSegun;
FinProceso
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://educacion.gitbook.io/programacion/ud1-introduccion-a-programacion/introducion-a-programacion/elementos-de-un-algoritmo/sentencias-condicionales.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
