edutecnica

Esercizio 7        

Data una serie di numeri interi, visualizzarne la somma totale: la serie termine con l'immisione del valore 0.


Il fatto di non conoscere preventivamente il numero totale di valori da sommare privilegia l'utilizzo di una struttura do-while.

#include <iostream>
using namespace std;
int main(){
  int n,sum=0;
  do{
    cout<<"ins.num:";cin>>n;
    sum+=n;
  }while(n!=0);
  cout<<"somma:"<<sum;
return 0;
}

Invece, un eventuale tentativo di usare il ciclo while è sconsigliato, perchè come specificato nel testo del problema il programma deve terminare dopo che è stato introdotto il numero 0.
Sappiamo però che tale ciclo esegue il controllo sulla condizione logica prima del blocco di istruzioni da eseguire e questo ne pregiudica l'utilizzo.
Al limite sarebbe possibile usare un ciclo for con qualche artificio:
for(;;){
  cout<<"ins.num:";cin>>n;
  if(n==0)break;
  sum+=n;
}
L'istruzione for(;;) genera in ciclo infinito mentre l'istruzione
if(n==0)break;
impone un'uscita dal ciclo nell'eventualità sia stato inserito il numero 0.