07. Istruzione break: numero primo

L'istruzione di break consente di interrompere un ciclo senza che si verifichi la condizione di uscita.

Questa istruzione semplifica la programmazione ma non aumenta le "potenzialità" del linguaggio, infatti il programmatore potrebbe agire sulle variabili che definiscono le condizioni di uscita del ciclo per raggiungere lo stesso risultato.

In questo esempio, l'obiettivo è stabilire se un numero è primo ed è utilizzato un ciclo while per verificare se il numero in questione ha dei divisori. Naturalmente se si trova un divisore è inutile cercarne altri perché si può affermare fin da subito che non si tratta di un numero primo e pertanto è possibile uscire dal ciclo senza continuare oltre l'iterazione.

#include <stdio.h>

int main()

{

int i, primo, N;

printf("Inserire un numero intero maggiore di 1: ");

scanf("%d", &N);

if (N<=1) {

printf("Il numero inserito non e' valido\n");

return 1;

}

primo=1;

i=2;

while (i <= N/2){

if (N/i * i == N){

primo = 0;

break;

}

i++;

}

if (primo)

printf("%d e' un numero primo\n", N);

else

printf("%d NON e' un numero primo\n", N);

return 0;

}

Commento:

Il programma verifica se il numero inserito dall'utente è primo.

La variabile primo è inizializzata ad 1 ma non appena viene trovato un divisore del numero N essa è impostata a 0.

break;

L'istruzione break, inserita in un ciclo, determina l'uscita dal ciclo stesso.

In questo programma, non appena è trovato un divisore di N, sono eseguite le seguenti istruzioni:

primo = 0;

break;

In altri termini è aggiornata la variabile primo (il valore 0 corrisponde a falso) e si interrompe il ciclo while grazie al break.

La successiva istruzione eseguita è quindi if (primo).