Gå til innhold

fungsjon for og begyne fra et annet pungt


Anbefalte innlegg

hei trenger en fungsjon for og gjøre slik at programmet aldrig tar slutt

eks:

cout << "hei. skriv et tall" <<endl;
cin >> nummer;
//dette skal skje igjen og igjen
if (nummer == 1){
cout << "ok" <<endl;
{
else << "ja vel" <<endl;
//det som er over skal skje igjen og igjen

hva må jeg sette inn?

Lenke til kommentar
Videoannonse
Annonse
hei trenger en fungsjon for og gjøre slik at programmet aldrig tar slutt

eks:

cout << "hei. skriv et tall" <<endl;
cin >> nummer;
//dette skal skje igjen og igjen
if (nummer == 1){
cout << "ok" <<endl;
{
else << "ja vel" <<endl;
//det som er over skal skje igjen og igjen

hva må jeg sette inn?

cout << "hei. skriv et tall" <<endl;
cin >> nummer;
bool done = 0;
while(!done)
{
if (nummer == 1){
cout << "ok" <<endl;
{
else << "ja vel" <<endl;
}

 

Skjønte ikke helt om du ville ha hele greia til å loope, eller bare if-setingen.

Skal du loope hele greia, flytter du

bool done = 0;

while(!done)

helt til toppen.

Lenke til kommentar

For å være litt mere spesifikk; det du trenger er en loop. (når jeg var i dine sko så satte jeg pris på veldig inngående forklaringer)

 

For dette programmet er det best å bruke en While setning, men undersøk For looper også.

 

For å få programmet til å gå i en endelig løkke bruker du While som en If test, dvs. at mens det som står i parantesene til While er sant vil den gå tilbake til den første { når den møter den } som lukker While setningen.

 

<BøNilzen> valgte å bruke en bool variabel, satt til 0. 0 er det samme som false, så du kunne ha skrevet

bool done = false;

og fått akkurat samme effekten. 1 er forresten true.

 

Her er mitt forslag til en evt. main funksjon til programmet ditt:

int main()
{
   bool ferdig = false;
   while (!ferdig) // betyr: mens IKKE ferdig. Utropstegn = ikke
   { 
   cout << "hei. skriv et tall" <<endl; 
   cin >> nummer;
   if (nummer == 1)
   {
       cout << "ok" <<endl;       
       ferdig = false; // kjør i endeløs løkke    
   }
   else 
   {  
       cout << "ja vel" <<endl;   
       ferdig = true;
   }
   } // avslutter while, når programmet kommer hit hopper det tilbake til while

}

 

Håper jeg ikke fornærmer deg ved å endre på koden, men jeg ville lært mest av kodesnutten overnfor. :yes:

 

Btw. følg med i norsktimene ;) Gode topics er en dyd

Endret av Vial
Lenke til kommentar
1 er forresten true.

 

Kan også nevne at alt annet enn 0(false), er true.

//Masse tull her...
int a = -8;
int b = 8;
int c = 0;

if(a)
    cout << "-8 er true" << endl;
else
    cout << "-8 er false" << endl;

if(b)
    cout << "8 er true" << endl;
else
    cout << "8 er false" << endl;

if(c)
    cout << "0 er true << endl;
else
    cout << "0 er false" << endl;

Vil skrive ut:

-8 er true
8 er true

Lenke til kommentar
hei trenger en fungsjon for og gjøre slik at programmet aldrig tar slutt

eks:

cout << "hei. skriv et tall" <<endl;
cin >> nummer;
//dette skal skje igjen og igjen
if (nummer == 1){
cout << "ok" <<endl;
{
else << "ja vel" <<endl;
//det som er over skal skje igjen og igjen

hva må jeg sette inn?

cout << "hei. skriv et tall" <<endl;
cin >> nummer;
bool done = 0;
while(!done)
{
if (nummer == 1){
cout << "ok" <<endl;
{
else << "ja vel" <<endl;
}

 

Skjønte ikke helt om du ville ha hele greia til å loope, eller bare if-setingen.

Skal du loope hele greia, flytter du

bool done = 0;

while(!done)

helt til toppen.

Det er ikke noe poeng å bruke egen variabel for å kjøre en uendelig løkke.

 


while(true) {

}

for(;;) {

}

Lenke til kommentar

Det er veldig god programmeringsskikk og bruke variabler. Dessuten er det veldig tydelig at personen som stiller spørsmålet er fresh i c/c++, da er det viktig og gi så grundig veiledning som mulig.

Endret av Vial
Lenke til kommentar
Det kan umulig være god programmeringsskikk å legge av plass i minnet til variabler som ikke er nødvendig.

 

Ved å ikke bruke en variabel, er det lettere å se at løkke er uendelig, koden skal også være lesbar.

nja, kommer litt an på. å alltid være ute etter å bruke minst mulig variabler kan bli en hemsko. i kompliserte strukturer er det kjekt å ha boolske variabler man kan sjekke, da enten i metodekall, i debug eller av rene oversiktlige grunner...

men når det er sagt, så er ikke bloat noe en skal være ute etter, selv om det i dette tilfellet er flisespikkeri

 

forresten så tror jeg at kompilatoren vil ta seg av dette likevell, så det er mulig argumentet er dødt...begge veier.

Endret av Legion
Lenke til kommentar

Hvis kompilatoren optimerer skikkelig så bruker den ikke minneplass til en statisk variabel med mindre man bruker volatile-keywordet.

Uansett er det bare tull med en variabel for å sjekke om en uendelig løkke skal fortsette.

Ellers er jeg enig i at på enkelte steder er det kjekt med unødvendige variabler, men ikke i dette tilfellet.

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å
×
×
  • Opprett ny...