Avatar billede 123maka Nybegynder
15. februar 2005 - 23:08 Der er 5 kommentarer og
1 løsning

Lidt hjælp til et C++ script, hvorfor laver den et uendeligt loop

Jeg sidder og skal løse en opgave min bog har givet mig, jeg har designet og tanken om programmet i hovedet men at få den udført i praksis er lidt svært da jeg lige skal vænne mig til at tænke i C++.

Jeg har tænkt mig at min kode skal (hvis switch_id er lig med 0) udskrive 8x+----+ og når den er lig med 1 skal den udskrive andre, det ville også være fint nok, men hvorfor bliver dette til en uendelig løkke? Hvordan får jeg den til at gå tilbage til switchen når alt det i case 0 er udført?

Jeg har flgn. kode:

#include <iostream.h>
main ()
{
        int switch_id;
        int control;

        while(1)
        {
                switch_id = 0;
                switch(switch_id) {
                        case 0:
                                for(control = 0; control < 8; ++control) {
                                        cout << "+-----+";
                                }
                                cout << "\n";
                                switch_id = 1;
                                break;
                        case 1:
                                cout << "switch_id var 1";
                        default:
                                cout << "switch_id var hverken 0 eller 1";
                }
        }
        return(0);
}
Avatar billede arne_v Ekspert
15. februar 2005 - 23:11 #1
Prøv:

        switch_id = 0; // <---- flyttet
        while(1)
        {
                switch(switch_id) {
                        case 0:
                                for(control = 0; control < 8; ++control) {
                                        cout << "+-----+";
                                }
                                cout << "\n";
                                switch_id = 1;
                                break;
                        case 1:
                                cout << "switch_id var 1";
                                break; // <----- sat ind
                        default:
                                cout << "switch_id var hverken 0 eller 1";
                }
        }
Avatar billede arne_v Ekspert
15. februar 2005 - 23:12 #2
Men du har stadig en uendelig løkke som du skal ud af på en eller anden måde.
Avatar billede 123maka Nybegynder
16. februar 2005 - 00:08 #3
Aha! Nu forstår jeg.
Kan man lave noget lignende:
case 1,2,3:
                                cout << "switch_id var 1";
                                break; // <----- sat ind

Altså, hvis switch_id er lig med 1,2,3 så skal outputte noget?
Avatar billede arne_v Ekspert
16. februar 2005 - 07:49 #4
case 1:
case 2:
case 3:
cout << "switch_id var 1";
break;
Avatar billede 123maka Nybegynder
16. februar 2005 - 15:13 #5
Tak. Vil du oprette svar?
Avatar billede arne_v Ekspert
16. februar 2005 - 15:21 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester