genstian Skrevet 17. november 2004 Del Skrevet 17. november 2004 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
<BøNilzen> Skrevet 17. november 2004 Del Skrevet 17. november 2004 hei trenger en fungsjon for og gjøre slik at programmet aldrig tar slutteks: 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
Vial Skrevet 17. november 2004 Del Skrevet 17. november 2004 (endret) 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. Btw. følg med i norsktimene Gode topics er en dyd Endret 17. november 2004 av Vial Lenke til kommentar
genstian Skrevet 17. november 2004 Forfatter Del Skrevet 17. november 2004 takker skal prøve Lenke til kommentar
Peter Skrevet 17. november 2004 Del Skrevet 17. november 2004 Hvorfor bruke noen ekstra variabler? while(1) // samme som while(true) { if(noe_som_skal_avslutte_loopen) break; // "break" hopper ut av loopen! } Lenke til kommentar
Vial Skrevet 18. november 2004 Del Skrevet 18. november 2004 For en nybegynner er det enklere med litt flere variabler enn litt færre. Ettersom man lærer seg å programmere vil man bruke færre og færre. Lenke til kommentar
Dead_Rabbit Skrevet 18. november 2004 Del Skrevet 18. november 2004 Og så burde det ikke bli en vane å bruke hoppsetninger. Lenke til kommentar
GeirGrusom Skrevet 18. november 2004 Del Skrevet 18. november 2004 Det hender at du må det da. men der kan du like så godt skrive while(noe_som_ska_avslutte_loopen) Lenke til kommentar
genstian Skrevet 21. november 2004 Forfatter Del Skrevet 21. november 2004 takker for all hjelp Lenke til kommentar
Dead_Rabbit Skrevet 21. november 2004 Del Skrevet 21. november 2004 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
Orjanp Skrevet 23. november 2004 Del Skrevet 23. november 2004 hei trenger en fungsjon for og gjøre slik at programmet aldrig tar slutteks: 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
Vial Skrevet 23. november 2004 Del Skrevet 23. november 2004 (endret) 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 23. november 2004 av Vial Lenke til kommentar
Orjanp Skrevet 23. november 2004 Del Skrevet 23. november 2004 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. Lenke til kommentar
Legion Skrevet 23. november 2004 Del Skrevet 23. november 2004 (endret) 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 23. november 2004 av Legion Lenke til kommentar
zyp Skrevet 23. november 2004 Del Skrevet 23. november 2004 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå