PDA

Visualizza la versione completa : ciclo while-domanda per il linguaggio c


ciro78
16-07-2002, 12:31
Ho realizzato il seguente programma

#include<stdio.h>
main()
{
int somma,numero;
somma=0;
printf("Inserisci un numero da sommare:");
scanf("%d",&numero);
while(numero) {
somma +=numero;
printf("la somma e\' :%d",somma);
printf("\nInserisci un numero da sommare:");
scanf("%d",&numero);
}
printf("grazie di aver partecipato");
}
funziona tutto a dovere ma c'è una cosa che non capisco.Perchè si interrompe se metto 0.C'è un modo per interromperlo con una parola o qualsiasi altra cosa.

Maldito
16-07-2002, 12:37
Originariamente inviato da ciro78
Ho realizzato il seguente programma

#include<stdio.h>
main()
{
int somma,numero;
somma=0;
printf("Inserisci un numero da sommare:");
scanf("%d",&numero);
while(numero) {
somma +=numero;
printf("la somma e\' :%d",somma);
printf("\nInserisci un numero da sommare:");
scanf("%d",&numero);
}
printf("grazie di aver partecipato");
}
funziona tutto a dovere ma c'è una cosa che non capisco.Perchè si interrompe se metto 0.C'è un modo per interromperlo con una parola o qualsiasi altra cosa.



nel tuo while testi il numero appena inserito.
Il test funziona su valori booleani, e 0 = false, qualsiasi altra cosa = true.
Se quindi vuoi testare la presenza di qualcos'altro, basta che fai while( numero != quellochevuoi )

ciro78
16-07-2002, 13:03
ma se metto numero uguale 5
l'istruzione non diventa

while(5)?

Mandrake978
16-07-2002, 13:08
Se tu metti while(numero) vuol dire fino a che numero è vero.. cioè fino a che ne inserisci uno.. per quello che si pianta sullo 0 e gli unici valori che puoi inserire sono 0 e 1.. perchè è un booleano.. potresti lasciare while(numero) e poi cacciarci un bel if else...

ciro78
16-07-2002, 13:15
grazie orma mi è un po piu chiaro
quindi se ho capito
while(numero) ripete il ciclo fino a che numero è vero cioè è un valore
in caso contrario se è falso si blocca
e l'if come lo imposto
?

Loading