Gå til innhold

lage et enkelt program, flere kodeblokker?


Gjest Slettet+65132

Anbefalte innlegg

Gjest Slettet+65132

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 av Slettet+65132
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+65132

hva gjør denne da ?

 

Et resultat av autoenter! Redigert nå. Har ellers lite peiling på c programmering.

Endret av Slettet+65132
Lenke til kommentar

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
' 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

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

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...