Internet de les coses amb ESP32 i ESP8266

Exemples Referència Plaques   Recursos CITCEA
Projectes Programació Perifèrics   Inici

Estructures algorítmiques condicionals

Les estructures algorítmiques condicionals són les que permeten que els programa faci coses diferents segons quines condicions es compleixin. L'estructura bàsica és la if o la seva variant if-else i també tenim l'estructura switch-case.

Estructura if

La forma de l'estructura if és la següent:

if (condició){
	// Instruccions que només es faran si es compleix la condició
}

Dins el parèntesi hi podem posar una variable boolean o una comparació. A continuació hi ha alguns exemples:

	boolean sensor;
if (sensor){
	// Instruccions que només es faran si sensor és certa
}

	boolean sensor;
if (!sensor){
	// Instruccions que només es faran si sensor és falsa
}

	unsigned int a;
if (a > 3){
	// Instruccions que només es faran si a és més gran que 3
}

	unsigned int a;
	unsigned int b;
if ((a > 3) and (b < 3)){
	// Instruccions que només es faran si a és més gran que 3
	// i b més petit que 3
}

Estructura if-else

Aquesta estructura ens permet definir què es es farà quan la condició es compleix i què es farà quan no es compleix. L'estructura és:

if (condició){
		// Instruccions que es faran si es compleix la condició
} else {
		// Instruccions que es faran si no es compleix la condició
}

És possible encadenar estructures if-else. Per exemple:

if (a == 0){
		// Instruccions que es faran si a és zero
} else if (a > 0){ 	// Si no és zero, fem una segona comparació
		// Instruccions que es faran si a és més gran que zero
} else { 		// Si no és zero ni més gran que zero, serà més petit
		// Instruccions que es faran si a és més petit que zero
}

Estructura switch-case

Aquesta estructura ens permet fer coses diferents segons el valor d'una variable. La forma típica seria:

switch (variable) {
	case 1:
		// Instruccions que es faran quan la variable valgui 1
	break;	// Salta fora de la intrucció switch
	case 2:
		// Instruccions que es faran quan la variable valgui 2
	break;	// Salta fora de la intrucció switch
	case 3:
		// Instruccions que es faran quan la variable valgui 3
	break;	// Salta fora de la intrucció switch
...
	default:	// Aquest tros és opcional; si no posem default no farà res
		// Instruccions que es faran quan la variable no valgui cap dels valors esmentats
}
// Aquí és on segueix després d'un break  

Si no posem els break seguirà fent les instruccions dels case següents.

Important: Les claus només són necessàries quan el contingut de la sentència és de més d'una línia. Si és d'una sola línia les claus no són necessàries però és una bona pràctica posar-les per evitar errors si s'hi han d'afegir més coses en el futur.

Per exemple, aquests dos trossos de programa són equivalents:

if (k == 10)
	k = 0;
	m = m + 1;

if (k == 10){
	k = 0;
}
m = m + 1;

Per tant el valor d'm es modifica per a qualsevol valor de k. De fet, la manera més "formal" d'escriure la primera versió seria:

if (k == 10)
	k = 0;
m = m + 1;

 

 

 

En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

 

 

 

 

 

 

 

 

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.