Gjest Slettet+65132 Skrevet 3. august 2010 Del Skrevet 3. august 2010 (endret) int main() { int b; b =0; while (b=0) { int a; a = 5; } return 0; } Hvordan skal eg kunne kjøre en kode som ikke er i den while løkken? Endret 3. august 2010 av Slettet+65132 Lenke til kommentar
Gjest Slettet+65132 Skrevet 3. august 2010 Del Skrevet 3. august 2010 (endret) hva gjør denne da ? Et resultat av autoenter! Redigert nå. Har ellers lite peiling på c programmering. Endret 3. august 2010 av Slettet+65132 Lenke til kommentar
[kami] Skrevet 4. august 2010 Del Skrevet 4. august 2010 c/c++ program kjører fra topp til bunn. dvs at når den er ferdig med while løkken vil den fortsette på det som står under. while (b=0) vil forøvrig sette b til 0, og vil alltid være true, så du har her laget en evig løkke. (korrekt er while (b==0) (merk, dobbelt == tegn) En annen måte å skrive det på, som vil gi deg compiler feil om du "glemmer" deg er while (0 == b), skriver du while (0=b) vil du få en feil fra kompilatoren. Du bør også gjøre det mulig for programmet ditt å komme ut av løkken eks: int b = 5; while (b > 0 ) { b--; } Denne vil gå så lenge b er større en 0, men for hver gang den kjører i løkka vil b bli èn mindre, så den vil totalt gå 5 ganger. Lenke til kommentar
Gjest Slettet+65132 Skrevet 4. august 2010 Del Skrevet 4. august 2010 ' date=' 4. august 2010 - 10:42' timestamp='1280911360' post='16026061']c/c++ program kjører fra topp til bunn. dvs at når den er ferdig med while løkken vil den fortsette på det som står under. while (b=0) vil forøvrig sette b til 0, og vil alltid være true, så du har her laget en evig løkke. (korrekt er while (b==0) (merk, dobbelt == tegn) En annen måte å skrive det på, som vil gi deg compiler feil om du "glemmer" deg er while (0 == b), skriver du while (0=b) vil du få en feil fra kompilatoren. Du bør også gjøre det mulig for programmet ditt å komme ut av løkken eks: int b = 5; while (b > 0 ) { b--; } Denne vil gå så lenge b er større en 0, men for hver gang den kjører i løkka vil b bli èn mindre, så den vil totalt gå 5 ganger. Okay, da ble det lettere å forstå. La oss si jeg eks vil lage et program som sjekker inngangene på en mikrokontroller, vil ikke programmet sjekke disse en gang da om en ikke putter koden i en uendelig whileløkke? Lenke til kommentar
[kami] Skrevet 5. august 2010 Del Skrevet 5. august 2010 om programmet konstant skal sjekke om det kommer noe derfra, så må du ha en løkke som går evig, ja. Lenke til kommentar
nomore Skrevet 5. august 2010 Del Skrevet 5. august 2010 For å svare på spørsmålet så kan du bruke funksjoner. Men for at koden i en funksjon skal kjøres så må du kjøre funksjonen fra main-løkken. For eks: void testfunksjon() { // kode du vil kjøre her. } int main() { testfunksjon(); } Dette var bare et eksempel, og kan inneholde syntax-feil Det som skjer i koden er at så lenge programmet kjører(eller mikrokontrolleren er aktiv) så går prosessoren igjennom hver enkelt kodelinje helt til den kommer til slutten, og så begynner den på nytt igjen. Evnt, siden mikrokontrollere ble nevnt, så kan man bruke interrupts. Da knytter man en inngang til en interrupt og videre til en spesifik funksjon. Da vil koden i funksjonen kjøre når inngangen går fra lav til høy eller høy til lav. De fleste mikrokontrollere støtter i dag interrupts. 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å