Avatar billede visualdeveloper Nybegynder
15. august 2005 - 20:27 Der er 13 kommentarer og
1 løsning

Simpelt Loop i C++

Hej eksperter!

Jeg har lavet dette program (eksempel)

#include <iostream>

using namespace std;

main()
{
    int valg;
    cout << "velkommen\n";
    cout << "valg\n";
    cout << "tryk 0 for at slutte\n";
    cin >> valg;
   
    if (valg==1)
    {
          cout << "hej";
    }
    else
    {
          cout << "farvel";
    }
system("pause");
return 0;
}

nu skal jeg bare ha' lavet det sådan at programmet starter forfra indtil valget bliver 0 (så slutter programmet)

hvordan gør jeg det kan i ikke opstille det for mig ?
Avatar billede thomas_nj Nybegynder
15. august 2005 - 21:01 #1
Kan gøres på forskellige måder:

#include <iostream>

using namespace std;

int main()
{
    int tal;
    do
    {
        cout<<"0 afslutter"<<endl;
        cin>>tal;
    }while(tal!=0);
   
    return 0;
}
kunne være et eksempel
Avatar billede thomas_nj Nybegynder
15. august 2005 - 21:13 #2
Hvis det er til et simpelt menusystem så:

#include <iostream>

using namespace std;

int main()
{
    char valg=NULL;
    do
    {
        cout<<"0 afslutter"<<endl;
        cin>>valg;

        switch (valg)
        {
              case '1': cout<<"Menu 1"<<endl;
                      break;
                     
              case '2': cout<<"Menu 2"<<endl;
                      break;
                     
              case '3': cout<<"Menu 3"<<endl;
                      break;
                     
              default: cout<<"Der er ikke en menu nr: "<<valg<<endl;
                      break;
        };

    }while(valg!='0');
   
    return 0;
}


  Grunden til at jeg bruger char som valg er at hvis du bruger int og brugeren giver et bogstav går starter et uendeligt loop. Det kan løses ved at teste med cin.good() men synes det er nemmere bare at bruge char.
Avatar billede visualdeveloper Nybegynder
15. august 2005 - 21:16 #3
det er genialt mange tak læg et svar og få nogle points !

forresten hedder det LOOP hvis jeg skal søge under det ?
Avatar billede thomas_nj Nybegynder
15. august 2005 - 21:23 #4
Det hedder et do while loop. Forskellen fra dette til et alm while loop er at det altid vil blive kørt igennem en gang selvom betingelsen ikke er sand. (En menu bør jo altid vises en gang ligegyldig hvad)
Avatar billede thomas_nj Nybegynder
15. august 2005 - 21:24 #5
Avatar billede visualdeveloper Nybegynder
15. august 2005 - 21:25 #6
ok tak men hvordan får man den til at slette al texten (undtagen menuen) hver gang den starter forfra ???

system("cls"); ??? men hvor
Avatar billede thomas_nj Nybegynder
15. august 2005 - 21:25 #7
En hurtig gennemgang af loops. Du skal bladre en side frem for at læse om do while loopet (som de kun kalder do loop)
Avatar billede visualdeveloper Nybegynder
15. august 2005 - 21:30 #8
fx hvis jeg i en case siger at den skal skrive "hej"

så når den starter forfra ser det sådan ud:

1. hej
2. hallo

valg = 1
hej

1. hej
2. hallo

den skal slette al texten over den nye menu ????
Avatar billede thomas_nj Nybegynder
15. august 2005 - 21:33 #9
#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    char valg=NULL;
    do
    {
        system("cls");
       
        cout<<"0 afslutter"<<endl;
        cout<<"Velkommen til menu"<<endl;
        cout<<"[1] vis menu 1"<<endl;
        cout<<"[2] vis menu 2"<<endl;
        cout<<"[3] vis menu 3"<<endl;
        cout<<"[4] afslut"<<endl;
        cin>>valg;

        switch (valg)
        {
              case '1':
                        system("cls");
                        cout<<"Menu 1"<<endl;
                        system("pause");
                      break;
                     
              case '2': system("cls");
                        cout<<"Menu 2"<<endl;
                        system("pause");
                      break;
                     
              case '3': system("cls");
                        cout<<"Menu 3"<<endl;
                        system("pause");
                      break;
                     
              case '4': system("cls");  // Her kan du lave noget med er du sikker?
                        cout<<"Quit"<<endl;
                        system("pause");
                      break;
                     
              default: system("cls");
                        cout<<"Der er ikke en menu nr: "<<valg<<endl;
                        system("pause");
                      break;
        };
       

    }while(valg!='4');
   
    return 0;
}
Avatar billede thomas_nj Nybegynder
15. august 2005 - 21:33 #10
Er det sådanher du mener?
Avatar billede visualdeveloper Nybegynder
15. august 2005 - 21:35 #11
mange tak du skal helt sikkert have alle pointsne ;)
Avatar billede visualdeveloper Nybegynder
15. august 2005 - 21:36 #12
har du iøvrigt læst min artikel om c++ ????

hvad synes du ???
Avatar billede visualdeveloper Nybegynder
15. august 2005 - 21:36 #13
jeg ved godt at den mangler en lille smule og at jeg skal bruge using namespace std;
Avatar billede visualdeveloper Nybegynder
15. august 2005 - 21:36 #14
men ellers er den da meget god ?
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