Gå til innhold

Hjelp til å lage enkel loop i enkelt "talltippspill"


Anbefalte innlegg

Hei

 

Kommer til å få litt c++ når jeg starter på skole etter sommeren, så tjuvstarter litt.

 

Har laget et lite "tall tippeprogram" som jeg paster under.

 

Det jeg lurer på er, hvordan jeg lager en loop som kjører programmet "på nytt" hvis man tipper feil tall?

 

Regner med det er unødvendig å beskrive hva programmets funksjoner er, er en ganske simpel kontruksjon

 

 

 

#include <iostream>

using namespace std;

int main()

{
   int tippetallet;                    //Funksjonen for å fylle inn tippetallet
   cout<<"\n\Morti`s talltipper! Tipp tallet, og du faar respekt!! \n\n\n\n"; //Txt: Fyll inn tippetall
   cout<<"Fyll inn tippetall:    "; //Txt: Fyll inn tippetall
   cin>> tippetallet;                  //funksjon: tippetall
   cin.ignore();                       //ikke bry seg om enter

   if (tippetallet == 343) {           //Hvis man finner riktig tall
   cout<<"Hurra! Du fant tallet!"; //melding for riktig tippetall

}

   else if (tippetallet < 343) {       //Hvis man tipper for lavt tall
   cout<<"Tallet er nok litt h0yere gutten min!"; 

}              


   else if (tippetallet > 343) {    //hvis man tipper for hoyt tall
   cout<<"Tallet er nok litt lavere gutten min!";
}  

cin.get();

}    

Lenke til kommentar
Videoannonse
Annonse

Hvis du pakker det hele inn i en while(1)-løkke, og legger til en break; etter Hurra (for å komme deg ut av løkken), så skulle det gjøre det du vil.

 

Prøv å gjør det selv før du titter på koden min..

 

#include <iostream>

using namespace std;

int main()

{
int tippetallet;					//Funksjonen for å fylle inn tippetallet
while(1){
cout<<"\n\Morti`s talltipper! Tipp tallet, og du faar respekt!! \n\n\n\n"; //Txt: Fyll inn tippetall
cout<<"Fyll inn tippetall:	"; //Txt: Fyll inn tippetall
cin>> tippetallet;				  //funksjon: tippetall
cin.ignore();					   //ikke bry seg om enter

if (tippetallet == 343) {		   //Hvis man finner riktig tall
cout<<"Hurra! Du fant tallet!"; //melding for riktig tippetall
break;				  
}

else if (tippetallet < 343) {	   //Hvis man tipper for lavt tall
cout<<"Tallet er nok litt h0yere gutten min!"; 

}			  


else if (tippetallet > 343) {	//hvis man tipper for hoyt tall
cout<<"Tallet er nok litt lavere gutten min!";
}  
}
cin.get();

}

 

Lenke til kommentar
Takk takk, har sitti 1 time nå og prøvd, men må innrømme at jeg kikka på løsningen!

 

Jeg var nære, men jeg må nok sette meg ned og skjønne logikken hvordan {} og ()brukes

 

Flott at du prøvde først selv! Da lærer du mer :)

 

Enkelt forklart kan du si at parantesbruken er den samme som med en if-setning. I den vanlige parantesen står det boolske uttrykket som enten er sant eller usant, og inne i krøll-parantesen står koden som skal kjøres så lenge det boolske uttrkket er sant.

 

I min løkke hadde jeg while(1), som er det samme som å skrive while(true), som gir en evig løkke. For å bryte ut av den brukte jeg break; som vil avbryte løkken den kalles i. Dette er kanskje ikke den beste/peneste løsningen, men er, imo, den enkleste løsningen å forstå.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...