Les sentències condicionals són una part fonamental de qualsevol llenguatge de programació, ja que permeten que el codi prengui decisions basades en certes condicions. En Objective-C, les sentències condicionals més comunes són if
, else if
, else
i switch
.
- Sentència
if
if
La sentència if
s'utilitza per executar un bloc de codi només si una condició específica és certa.
Sintaxi
Exemple
En aquest exemple, el missatge "Ets major d'edat." només es mostrarà si la variable edat
és major o igual a 18.
- Sentència
else
else
La sentència else
s'utilitza juntament amb if
per executar un bloc de codi alternatiu si la condició de l'if
és falsa.
Sintaxi
if (condició) { // Bloc de codi a executar si la condició és certa } else { // Bloc de codi a executar si la condició és falsa }
Exemple
int edat = 16; if (edat >= 18) { NSLog(@"Ets major d'edat."); } else { NSLog(@"Ets menor d'edat."); }
En aquest exemple, el missatge "Ets menor d'edat." es mostrarà perquè la variable edat
és menor que 18.
- Sentència
else if
else if
La sentència else if
permet comprovar múltiples condicions en seqüència.
Sintaxi
if (condició1) { // Bloc de codi a executar si la condició1 és certa } else if (condició2) { // Bloc de codi a executar si la condició2 és certa } else { // Bloc de codi a executar si cap de les condicions anteriors és certa }
Exemple
int nota = 85; if (nota >= 90) { NSLog(@"Excel·lent"); } else if (nota >= 75) { NSLog(@"Bé"); } else if (nota >= 50) { NSLog(@"Suficient"); } else { NSLog(@"Insuficient"); }
En aquest exemple, el missatge "Bé" es mostrarà perquè la variable nota
és major o igual a 75 però menor que 90.
- Sentència
switch
switch
La sentència switch
s'utilitza per seleccionar una de moltes blocs de codi a executar. És una alternativa a múltiples sentències else if
.
Sintaxi
switch (expressió) { case valor1: // Bloc de codi a executar si expressió == valor1 break; case valor2: // Bloc de codi a executar si expressió == valor2 break; // Més casos... default: // Bloc de codi a executar si cap dels casos anteriors és cert }
Exemple
int dia = 3; switch (dia) { case 1: NSLog(@"Dilluns"); break; case 2: NSLog(@"Dimarts"); break; case 3: NSLog(@"Dimecres"); break; case 4: NSLog(@"Dijous"); break; case 5: NSLog(@"Divendres"); break; case 6: NSLog(@"Dissabte"); break; case 7: NSLog(@"Diumenge"); break; default: NSLog(@"Dia invàlid"); }
En aquest exemple, el missatge "Dimecres" es mostrarà perquè la variable dia
és igual a 3.
Exercicis Pràctics
Exercici 1
Escriu un programa que determini si un nombre és positiu, negatiu o zero.
Solució
int nombre = -5; if (nombre > 0) { NSLog(@"El nombre és positiu."); } else if (nombre < 0) { NSLog(@"El nombre és negatiu."); } else { NSLog(@"El nombre és zero."); }
Exercici 2
Escriu un programa que assigni una qualificació basada en una nota numèrica (A, B, C, D, F).
Solució
int nota = 88; char qualificacio; if (nota >= 90) { qualificacio = 'A'; } else if (nota >= 80) { qualificacio = 'B'; } else if (nota >= 70) { qualificacio = 'C'; } else if (nota >= 60) { qualificacio = 'D'; } else { qualificacio = 'F'; } NSLog(@"La qualificació és %c", qualificacio);
Errors Comuns i Consells
- Oblidar el
break
en una sentènciaswitch
: Si oblides elbreak
, el codi continuarà executant els següents casos fins que trobi unbreak
o arribi al final delswitch
. - No utilitzar parèntesis correctament: Assegura't que les condicions dins dels parèntesis estiguin correctament tancades.
- Comparacions incorrectes: Recorda utilitzar
==
per comparar valors i=
per assignar valors.
Conclusió
Les sentències condicionals són essencials per controlar el flux del teu programa. Amb if
, else if
, else
i switch
, pots crear lògiques complexes que permetin al teu codi prendre decisions basades en diferents condicions. Practica aquests conceptes amb els exercicis proporcionats per assegurar-te que entens com funcionen.
Curs de Programació en Objective-C
Mòdul 1: Introducció a Objective-C
- Introducció a Objective-C
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsiques
- Tipus de Dades i Variables
- Operadors i Expressions
Mòdul 2: Flux de Control
Mòdul 3: Funcions i Mètodes
- Definició i Crida de Funcions
- Paràmetres de Funció i Valors de Retorn
- Sintaxi de Mètodes en Objective-C
- Mètodes de Classe i d'Instància
Mòdul 4: Programació Orientada a Objectes
Mòdul 5: Gestió de Memòria
- Introducció a la Gestió de Memòria
- Comptatge Automàtic de Referències (ARC)
- Retenció i Alliberament Manual
- Millors Pràctiques de Gestió de Memòria
Mòdul 6: Temes Avançats
Mòdul 7: Treballant amb Dades
- Gestió d'Arxius
- Serialització i Deserialització
- Conceptes Bàsics de Xarxes
- Treballant amb JSON i XML
Mòdul 8: Desenvolupament d'Interfícies d'Usuari
- Introducció a UIKit
- Vistes i Controladors de Vista
- Disseny Automàtic
- Gestió de l'Entrada de l'Usuari