Els bucles són una part fonamental de qualsevol llenguatge de programació, ja que permeten executar un bloc de codi repetidament fins que es compleixi una condició específica. En Objective-C, hi ha diversos tipus de bucles que podem utilitzar: for
, while
i do-while
. En aquesta secció, explorarem cadascun d'aquests bucles amb exemples pràctics.
Tipus de Bucles
Bucle for
El bucle for
s'utilitza quan sabem quantes vegades volem repetir un bloc de codi. La seva sintaxi és la següent:
Exemple:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { for (int i = 0; i < 5; i++) { NSLog(@"Iteració %d", i); } } return 0; }
Explicació:
inicialització
: s'executa una vegada al començament del bucle. En aquest cas,int i = 0
.condició
: s'avalua abans de cada iteració. Si éstrue
, el bucle continua; si ésfalse
, el bucle s'atura. Aquí,i < 5
.increment
: s'executa després de cada iteració. En aquest cas,i++
.
Bucle while
El bucle while
s'utilitza quan no sabem exactament quantes vegades volem repetir el bloc de codi, però sabem que volem continuar mentre es compleixi una condició.
Exemple:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int i = 0; while (i < 5) { NSLog(@"Iteració %d", i); i++; } } return 0; }
Explicació:
condició
: s'avalua abans de cada iteració. Si éstrue
, el bucle continua; si ésfalse
, el bucle s'atura. Aquí,i < 5
.
Bucle do-while
El bucle do-while
és similar al while
, però la condició es verifica després de cada iteració. Això garanteix que el bloc de codi s'executi almenys una vegada.
Exemple:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int i = 0; do { NSLog(@"Iteració %d", i); i++; } while (i < 5); } return 0; }
Explicació:
condició
: s'avalua després de cada iteració. Si éstrue
, el bucle continua; si ésfalse
, el bucle s'atura. Aquí,i < 5
.
Exercicis Pràctics
Exercici 1: Bucle for
Escriu un programa que imprimeixi els números del 1 al 10 utilitzant un bucle for
.
Solució:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { for (int i = 1; i <= 10; i++) { NSLog(@"Número %d", i); } } return 0; }
Exercici 2: Bucle while
Escriu un programa que imprimeixi els números del 1 al 10 utilitzant un bucle while
.
Solució:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int i = 1; while (i <= 10) { NSLog(@"Número %d", i); i++; } } return 0; }
Exercici 3: Bucle do-while
Escriu un programa que imprimeixi els números del 1 al 10 utilitzant un bucle do-while
.
Solució:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { int i = 1; do { NSLog(@"Número %d", i); i++; } while (i <= 10); } return 0; }
Errors Comuns i Consells
-
Condicions Incorrectes:
- Assegura't que la condició del bucle sigui correcta per evitar bucles infinits.
- Exemple:
while (i = 5)
en lloc dewhile (i == 5)
.
-
Increment/Decrement Omissos:
- No oblidis incrementar o decrementar la variable de control del bucle per evitar bucles infinits.
- Exemple:
for (int i = 0; i < 5;)
sensei++
.
-
Inicialització Fora del Bucle:
- Assegura't que la inicialització de la variable de control es faci dins del bucle
for
o abans del buclewhile
/do-while
.
- Assegura't que la inicialització de la variable de control es faci dins del bucle
Resum
En aquesta secció, hem après sobre els diferents tipus de bucles en Objective-C (for
, while
, do-while
) i com utilitzar-los per repetir blocs de codi. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. Els bucles són una eina poderosa que ens permeten escriure codi més eficient i modular. En la següent secció, explorarem les sentències switch
per gestionar múltiples condicions de manera més elegant.
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