#include <stdio.h> int main(void) { int summa=0,luku; printf("Anna lukuja. Summaan niitä kunnes annat 0 tai summa > 20\n"); while ( summa <= 20 ) { printf("Anna luku>"); scanf("%d",&luku); if ( luku == 0 ) break; summa += luku; } printf("Lukujen summa on %d.\n",summa); return 0; }Jos edellä olisi ollut alustus luku=1, olisi tietenkin while - silmukan ehto voitu kirjoittaa muodossa
while ( ( luku != 0 ) && ( summa <= 20 ) ) {mutta aina ei voida break - lausetta korvata näin yksinkertaisesti. Esimerkiksi seuraava olisi jo hankalampi muuttaa:
while ( summa <= 20 ) { printf("Anna luku>"); if ( !scanf("%d",&luku ) break; if ( luku == 0 ) break; summa += luku; }break - lauseen vika on lähinnä siinä, ettei siitä suoraan nähdä sisäkkäisten silmukoiden tapauksessa sitä, mihin saakka suoritus katkeaa. Epäselvissä tapauksissa silmukan katkaisu voidaan hoitaa goto - lauseella.
Silmukka voidaan katkaista tietenkin myös muuttamalla silmukan lopetusehtoon vaikuttavia muuttujia. Varsinkin for- lauseen tapauksessa silmukan indeksin arvon muuttaminen muualla kuin kasvatus- lauseessa on todella väkivaltaista ja rumaa, eikä tällaista pidä mennä tekemään.