"Zucchero Sintattico" in C - Cicli: Conosciamo in costrutto while () { .... .... } che ripete le istruzioni contenute dentro al blocco fino a che il predicato e' vero. La valutazione del predicato viene effettuata _prima_ di eseguire il ciclo, quindi se il predicato e' subito falso il ciclo non viene mai eseguito. Per cicli con contatore, e' frequente scrivere cose tipo: int i; ... i = 0; while (i < max) { ... ... i = i + 1; } notare l'inizializzazione del contatore (i = 0) prima di entrare nel ciclo e l'incremento del contatore (i = i + 1) come ultima istruzione del blocco del ciclo. Questo e' equivalente a: int i; ... for (i = 0; i < max; i++) { ... ... } Il costrutto "for()" mette quindi assieme il ciclo while con l'inizializzazione e l'incremento a fine ciclo. In generale, for (; ; ) { ... ... } e' del tutto equivalente a ; while () { ... ... ; } Esiste poi un altro costrutto per i cicli in C, chiamato do{}while(). do { ... ... } while (); esegue il blocco di istruzioni, poi valuta il predicato e se e' vero esegue ancora il blocco e cosi' via... Simile a while(), ma valuta il predicato _dopo_ aver eseguito il ciclo. Il ciclo viene quindi eseguito sempre almeno una volta! - Istruzioni di incremento / decremento Spesso (soprattutto nei cicli con contatore) si scrivono cose tipo i = i + 1; Questo puo' essere scritto come i++; per risparmiare qualche carattere... Esiste una forma analoga ++i; che pure incrementa la variabile. La differenza fra "i++" e "++i" e' che "i++" ritorna il valore di i _prima dell'incremento_, mentre "++i" ritorna il valore di i _dopo l'incremento_. - Operazioni con assegnamento Invece di scrivere a = a + b; si puo' scrivere a += b; (quindi "i++" si puo' scrivere "i += 1"). Analogamente, esistono "-=", "/=", "*=", etc... -Switch Cose del tipo if (n == 1) { printf("Uno\n"); } else { if (n == 2) { printf("Due\n"); } else { if (n == 3) { printf("tre\n"); } else ... } } possono essere scritte come switch (n) { case 1: printf("Uno\n"); break; case 2: printf("Due\n"); break; case 3: printf("Tre\n"); break; ... default: printf("Nessuna delle precedenti!\n"); break; } controllare un manuale del linguaggio C per la sintassi esatta ed i dettagli.