genstian Skrevet 17. november 2004 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?
<BøNilzen> Skrevet 17. november 2004 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.
Vial Skrevet 17. november 2004 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
Peter Skrevet 17. november 2004 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! }
Vial Skrevet 18. november 2004 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.
Dead_Rabbit Skrevet 18. november 2004 Skrevet 18. november 2004 Og så burde det ikke bli en vane å bruke hoppsetninger.
GeirGrusom Skrevet 18. november 2004 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)
Dead_Rabbit Skrevet 21. november 2004 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
Orjanp Skrevet 23. november 2004 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(;;) { }
Vial Skrevet 23. november 2004 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
Orjanp Skrevet 23. november 2004 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.
Legion Skrevet 23. november 2004 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
zyp Skrevet 23. november 2004 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.
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å