Permalänk
Medlem

Frågor kring kod i C#

static void Main()
{
int ttl = 0;

int[] elev = new int[30];

Random rnd = new Random();

for (int i = 0; i < elev.Length; i++)
{

elev[i] = (int) ((rnd.NextDouble() * 100) + 1);

Console.WriteLine("Elev {0} har betyget - {1}", i + 1, elev[i]);
}

Hej alla. Har skrivit ett litet program som skall ge slumpmässiga betyg åt 30 elever

Men det jag undrar över är sista raden dvs:

Console.WriteLine("Elev {0} har betyget - {1}", i + 1, elev[i]);

Om jag ändrar variabeln i dvs i + 1 kommer det inte stå då istället för elev[i]
elev[1]. Det jag inte förstår är alltså om i startar från 0. Och jag skriver så som i sista raden, så undrar jag hur den vet att elev börjar från [0] och inte från ett, jag menar den borde ju göra det då jag ändrar variabeln strax innan.

Hoppas ni förstår vad jag pratar om. tack på förhand.

Permalänk
Medlem

i Console.WriteLine("Elev {0} har betyget - {1}", i + 1, elev[i]); ändrar du aldrig värdet på i... Om man skulle skriva funktionen i vanlig text skulle det bli något i stil med:
Skriv en rad i konsolen med texten "Elev {0} har betyget - {1}", men {0} byter du ut mot värdet av i plus ett (men lämna värdet på i orört) och {1} byter du ut mot värdet på elev[i].

edit: om du däremot skulle skriva Console.WriteLine("Elev {0} har betyget - {1}", ++i, elev[i]); så betyder det Skriv en rad i konsolen med texten "Elev {0} har betyget - {1}", öka i med ett och byt ut {0} mot värdet av i och {1} byter du ut mot värdet på elev[i]. och då skulle det bli så som du undrade varför det inte blev