Nyt spørgsmål fra ivrig objectiv-c trainee

I dette forum kan du stille spørgsmål til Objective-C programmering og udvikling til Apple´s iPhone, iPad og Mac platforme.
Besvar
niemoe
Begynder
Indlæg:16
Tilmeldt:25. mar 2014, 13:54
Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af niemoe » 17. apr 2014, 22:40

Når man kan forøge en variabel med én, ved at skrive f.eks "x++" (x er variablen), kan man da forøge med mere end én - altså nogen form for: x++2 ?

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af cristian » 19. apr 2014, 22:34

Nej du kan sige

Kode: Vælg alt

x+2
Hvis det er det du mener :)

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af cristian » 20. apr 2014, 20:47

Skal så lige siges med ++ (increment). At det er også muligt at sige

++x
såsom det er at sige
x++

Spørgsmålet er bare hvornår man skal bruge hvad i sit program.

niemoe
Begynder
Indlæg:16
Tilmeldt:25. mar 2014, 13:54

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af niemoe » 23. apr 2014, 09:31

cristian skrev:Skal så lige siges med ++ (increment). At det er også muligt at sige

++x
såsom det er at sige
x++

Spørgsmålet er bare hvornår man skal bruge hvad i sit program.

Tak for jeres svar. Det var sådan her jeg mente:
int i = 0;
while (i <= 195) {
i+=5;
NSLog(@"%i", i);
}

Her lægger den f.eks 5 til i hver iteration.

seerex
Entusiast
Entusiast
Indlæg:37
Tilmeldt:17. apr 2014, 17:23

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af seerex » 25. apr 2014, 08:43

Nu har du jo selv fundet dit svar, men ville lige smide mine 2 cent ind :)

x++ eller ++x (gør det samme) er en "incrementation" af en variabel. Ligeledes kan man sige x-- eller --x for at decremente. Man forøger eller mindsker værdien med 1.

Der er ikke nogen "short-hand" syntax for andre værdier. Man kan altså ikke sige x++++ for at incremente med 2 for eksempel. Der er kun +1 og -1, fordi de er så tit brugt, lavede man denne her forkortelse. Man kalder det "Syntaktisk sukker", fordi det bare er noget der er rart at have, og man derfor lavede en genvej.

Med x += 4 eller x -= 15 kan man gøre det så mange størrelser man vil, og det var sådan man altid gjorde inden man lavede forkortelsen :) så skrev man x += 1, og før det skrev man x = x + 1.

håber det giver lidt forståelse :)

niemoe
Begynder
Indlæg:16
Tilmeldt:25. mar 2014, 13:54

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af niemoe » 25. apr 2014, 11:21

seerex skrev:Nu har du jo selv fundet dit svar, men ville lige smide mine 2 cent ind :)

x++ eller ++x (gør det samme) er en "incrementation" af en variabel. Ligeledes kan man sige x-- eller --x for at decremente. Man forøger eller mindsker værdien med 1.

Der er ikke nogen "short-hand" syntax for andre værdier. Man kan altså ikke sige x++++ for at incremente med 2 for eksempel. Der er kun +1 og -1, fordi de er så tit brugt, lavede man denne her forkortelse. Man kalder det "Syntaktisk sukker", fordi det bare er noget der er rart at have, og man derfor lavede en genvej.

Med x += 4 eller x -= 15 kan man gøre det så mange størrelser man vil, og det var sådan man altid gjorde inden man lavede forkortelsen :) så skrev man x += 1, og før det skrev man x = x + 1.

håber det giver lidt forståelse :)

Jo tak, Seerex.

Det gav fuld forståelse. Undrede mig lidt over at jeg kun kunne gøre det på den måde jeg var kommet frem til. Nu forstår jeg :-)

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af cristian » 25. apr 2014, 18:16

x++ eller ++x (gør det samme)
Nej det gør de satme ikke.
Ligesom while, do while og for løkker er heller ikke det samme og i store systemer kan sådanne ting have store økonomiske konsekvenser.

F.eks. Mistede en bank millioner igennem deres IT system, og de fattede ikke hvorfor.
Det viste sig, at deres programmør havde brugt en forkert while løkke og eksekveret kode i en forkert orden hvilket lavede ja lort i deres rente og investerings system.

Så x++ og ++x er bestemt IKKE det samme, og kode skal eksekveres i den RIGTIGE orden.
Og at forstå sådanne ting er hvor de rigtige penge er. At skrive selve koden er bare abe arbejde som enhver person kan gøre.

seerex
Entusiast
Entusiast
Indlæg:37
Tilmeldt:17. apr 2014, 17:23

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af seerex » 25. apr 2014, 19:39

Hej Christian,

Mange tak for dit svar. Selvom det dog er et meget spydigt svar må jeg sige. At bande og svovle over det er måske lige i overkantent ifølge mig.

Men du har bestemt ret, det er ikke det samme, og jeg beklager at jeg ikke fremlagde det i min forrige post. Men i modsætning til dig, vil jeg ikke bare smide bandeord afsted, men faktisk være lidt konstruktiv og komme med den rigtige defination, så andre læsere af denne tråd faktisk kan drage lidt nytte af det.

x++ kaldes "Post-increment". Det betyder, at en statement vil blive udført først, og så bagefter vil værdien udføres. for eksempel:
int x = 1;
print( x++ ); -> der bruges post-increment, så først vil den nuværende værdi i x blive udskrevet, og DEREFTER vil den blive inkrementeret. Så 1 vil være udskrevet, og efter det er værdien i x 2.

Laver vi "Pre-increment" med ++x, vil vi FØRST inkrementere værdien i x, og derefter udføre resten af sætningen:
int x = 1;
print( ++x ); -> vil udprinte 2, da værdien FØRST (pre) bliver forøget, og derefter udskrevet.

Det er dog stadigvæk sandt, at i langt de fleste tilfælde kan man fuldstændig ignorere dette. Det vil sjældent være noget man skal tage højde for, og når det endelig er noget man skal tage højde for, vil det være strengt fremlagt. Men dog beklager jeg igen, at jeg ikke lige fik fremlagt det i den første post. Jeg tænkte mere "overordnet" da jeg gav svaret, især fordi det ikke lige var i de detaljer som spørgsmålet lagde i, da det jo egentlig bare var hvordan man kunne forøge værdien i variabler med eventuelle shortcuts.

Og nej Christian, jeg deler bestemt ikke din holdning i at "alle bare kan lave kode" og at det er "abe arbejde". Kodning er både en kunst og en videnskab, og det er bestemt ikke kun at have fat i alle de små detaljer der betyder noget, ligesom du ikke behøver kunne navnet på alle male teknikker for at kunne lave et flot maleri som du og andre kan nyde.

cristian
Moderator
Moderator
Indlæg:882
Tilmeldt:26. sep 2011, 21:31
Kontakt:

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af cristian » 25. apr 2014, 20:51

vil jeg ikke bare smide bandeord afsted
Nej det også rigtigt, men nu tænkte jeg at ham her Seerex han fanme skulle have ;) for det var jeg lige oplagt til (krigs humør on) efter at "ligge arm" med
andre igennem dagen.

Og nu var det heller ikke mig der havde gået galt i byen til at starte med. Blink blink
og komme med den rigtige defination
Super duper.
Og nej Christian, jeg deler bestemt ikke din holdning i at "alle bare kan lave kode" og at det er "abe arbejde". Kodning er både en kunst og en videnskab, og det er bestemt ikke kun at have fat i alle de små detaljer der betyder noget, ligesom du ikke behøver kunne navnet på alle male teknikker for at kunne lave et flot maleri som du og andre kan nyde.
Det også fair nok, men det er din holdning.

Min holdning er at det er den tekniske designer der skaber kunst og tilføjer videnskab. "udvikleren" aka scripteren er bare en Abe der følger den tekniske specifikation.
Og i mange tilfælde er designeren og "udvikleren" den samme person. Og i mange tilfælde har du personer som er udelukkende designerer der fortæller helt ned i detaljer
hvordan et program skal "kodes".
og det er bestemt ikke kun at have fat i alle de små detaljer der betyder noget
Det er her de gode skiller sig ud fra de.... Mindre gode. Og om en bank mister millioner eller ej.
Eller hvis man har en designer, så er det hans ansvar at vide overstående.
ligesom du ikke behøver kunne navnet på alle male teknikker for at kunne lave et flot maleri som du og andre kan nyde.
Selvfølgelig ikke. Men man skal vide hvordan man bruger teknikkerne det klart. Men det heller ikke det jeg taler om.

seerex
Entusiast
Entusiast
Indlæg:37
Tilmeldt:17. apr 2014, 17:23

Re: Nyt spørgsmål fra ivrig objectiv-c trainee

Indlæg af seerex » 26. apr 2014, 11:18

Er glad for det bare var et midlertidigt krigshumør du var i ;) Næste gang du har det sådan, kan jeg anbefale at banke hårdt i bordet, eller kaste en hård genstand ind i muren for at afreagere inden man skriver på forum :)

Men vi kan bruge hele dagen på at diskutere vores egne holdninger til både programmering og design, og det er næppe relevant for andre læsere ^^ jeg respekterer dog dine holdninger, og vil så lade den ligge der.

Syntes dog det endte med at blive en fin tråd, med nogen gode definitioner på tildeling af værdier til variabler :)

Besvar