Vorrei un aiuto sull'istruzione break in C

di il
10 risposte

Vorrei un aiuto sull'istruzione break in C

Allora..in pratica ho questo problema...sono al controllo del programma, e alle famose istruzioni di uscita o continuazione...ora, per la sequenza in un ciclo for, con le suddette istruzioni..tutto bene...ma..quando ritorno alla forma estesa, ovvero il while e do/while...delle volte sbaglio la sequenza...in pratica...sul do/while, il break...la forma di un semplice programma è cosi strutturata:

#include <stdio.h>
#include <conio.h> /*Non me ne volete se programmo su windows eheheh*/

main()
{
int num = 1;

do{
printf("%d",num);
}
while(++num <= 10);

getch()
}
e fin qua tutto chiaro..ora però..in questo programma volendo ad esempio inserire un istruzione break, che esca dal sorpo al numero 5..mi viene da fare..

#include <stdio.h>
#include <conio.h>

main()
{
int num;

num = 1;

do{
printf("%d", num);
if(num ==5)
{
printf("L'ultimo numero inserito e': %d");
break;
}
}while(++num <= 10);


getch();
}

solo però il compilatore, ignora il break...uso dev-c++...mi chiedevo se però il ragionamento va bene...

10 Risposte

  • Re: Vorrei un aiuto sull'istruzione break in C

    Ma in poche parole tu metti il break ed il programma non esce dal ciclo? Dovrebbe uscire non appena becca il break.
  • Re: Vorrei un aiuto sull'istruzione break in C

    Ciao,

    jackalxp5b ha scritto:


    #include <conio.h> /*Non me ne volete se programmo su windows eheheh*/
    Quando si programma su windows la conio non la si prende nemmeno in considerazione, non includere la conio per utilizzare la funzione getch(), al suo posto utilizza la funzione getchar() cosi' non includi librerie inutili.
    Comunque, ho copia/incollato - compilato il tuo sorgente ed eseguito e funziona correttamente. Visualizza a video i numeri
    1 2 3 4 5 e poi termina: infatti c'è un
    
    if (num == 5) {
      printf("L'ultimo numero inserito e': %d");
      break;
    }
    
    Ed e' proprio quelle che deve fare, in ogni caso utilizzare un break in questo (e modi simili) e' brutto e rende la lettura del codice sorgente piu' difficoltosa, quindi e' sconsigliato.
    L'istruzione break abituati ad usarla solo nel costrutto switch - case.
    Saluti, netburst.
  • Re: Vorrei un aiuto sull'istruzione break in C

    Infatti...avevo ragionato bene...nel do/while, il corpo delle azioni deve essere eseguito almeno tutto una volta...quindi la forma, non poteva che essere giusta...non so...continua ad ignorarmelo...in pratica conta nuovamente fino a 10 senza bloccarsi...ho inserito la getchar() e ti ringrazio del suggerimento, mi risparmio un comando preprocessore...
  • Re: Vorrei un aiuto sull'istruzione break in C

    Tutto bene ragazzi...ho un problema sul pc...virus o qualche altra cavolata...ho provato lo stesso programma su un sistema pulito...tutto bene...è una settimana che ci sbattevo la testa, perchè non l'ho fatto prima? tutto bene...
  • Re: Vorrei un aiuto sull'istruzione break in C

    jackalxp5b ha scritto:


    ...ho inserito la getchar() e ti ringrazio del suggerimento, mi risparmio un comando preprocessore...
    Non e' tanto il risparmio di un istruzione al preprocessore (riga piu' o riga meno non fa differenza), ma piuttosto cosa questa comporta: in questo caso l'inclusione di un'intera libreria assolutamente inutile. In progetti di piccole dimensioni non fa differenza ma abituarsi a saper decidere cosa serve e cosa no e' una buona cosa.
    Saluti, netburst.
  • Re: Vorrei un aiuto sull'istruzione break in C

    Ti tingrazio ancora netburst...ci sto dando anima e corpo per imparare a programmare in questo linguaggio...però..mi succede una cosa curiosa...in pratica il pc me lo sono rifatto nuovo, e dopo aver reinstallato un windows 7 a 64 bit...con processore q6600 a 2,40 Ghz, una piastra p5b socket 775..e usando il dev-c++...quando ho fatto un paio di programmi, e ne riscrivo uno nuovo, in pratica mi va in errore...nel senso...faccio la compilazione, e la finestra in output si apre...solo se ad esempio scrivo,

    #include <stdio.h>

    main()
    {
    int x;



    for(x = 1; x <= 99; x++){




    printf("%d\n", x);

    }


    getchar();

    }
    come output, ottengo non un valore per volta, ma quello finale direttamente...100...non capisco il motivo...




    printf("%d\n", x);

    }


    getchar();

    }
  • Re: Vorrei un aiuto sull'istruzione break in C

    Posta i codici sorgente in modo che si possano leggere, altrimenti e' impossibile aiutarti.
    I sorgenti mettili tra i tag '['code']' e '['/code']' (Togli gli ' naturalmente) ed utilizza un'indentazione del codice decente.
    Il codice che hai postato nell'ultimo post sembrerebbe errato dato che il numero di } e' maggiore del numero di { quindi e' sicuramente errato, ma postato in quel modo non si capisce nulla.
    Inoltre quando dici "il compilatore da' errore ..." e' inutile, riporta esattamente l'errore che riporta altrimenti anche in questo caso e' impossibile aiutarti.
    Saluti, netburst.
  • Re: Vorrei un aiuto sull'istruzione break in C

    Bene netburst, chiedo scusa ma...sono principiante sia del sito che del linguaggio..ma credo di aver afferrato, dunque intanto chiedo scusa del mio ultimo post, ho incollato un nuovo programma non cancellando il residuo dell'altro soprastante. Poi il problema sostanzialmente è questo, scrivo due o tre programmi che compila ed esegue perfettamente, quando ne scrivo un successivo, che può essere:
    #include <stdio.h>
    main()
    {
      int num;
          
          for(num = 1; num <= 20; ++num)
          
          printf("%d\n\n", num);
          
          getchar();
          
          }
    succede che il suo output non è la scaletta dei numeri da 1 a 20...ma mi mostra solo il 20 nella finestra output ( quindi la condizione falsa che blocca la condizione di ciclo); ora con questo codice...ma potevo essenzialmente scriverne anche un altro; ad esempio se ci aggiungo un break o un continue nidificato, lo salta...come se lo ignorasse, e non capisco il motivo di questa cosa...il compilatore è sempre il dev-c++, sulla configurazione hardware che ho messo nell'ultimo post.
  • Re: Vorrei un aiuto sull'istruzione break in C

    Uhm... molto strana come cosa. Sicuro che non puoi scrollare la finestra di output "in su" e cosi' vedere visualizzati gli altri output!?!?
    Altrimenti non ti saprei dire..
    Saluti, netburst.
  • Re: Vorrei un aiuto sull'istruzione break in C

    Che dirti net...ho provato a disistallare e reinstallare, adesso scrivo anche dieci programmi a fila, tutto bene...ti tingrazio ancora per l'aiuto...per il momento vado benone, casomai posterò ancora se trovo difficoltà, grazie a te e chiunque del sito. Jackal...
Devi accedere o registrarti per scrivere nel forum
10 risposte