Skapa en rad siffror i en label
Uppgiften är att skapa följande rader i en label (lblRes):
1 3 5 7 9
3 9 15 21 27
5 15 25 35 45
Jag blir ganska förvirrad av loopar. Jag tänker mig att raderna kan skrivas ut på följande sätt:
i + (j*k)
- där i går från 1 till 3 till 5,
- där j går från 0 ända tills 4
- där k går från 2 till 6 till 10
Så jag skrev denna kod:
for (int i = 1; i < 5; i+=2)
{
for (int j = 0; j < 4; j++)
{
for (int k = 2; k < 6; k += 4)
{
lblRes.Text += " " + i + (j * k);
}
}
lblRes.Text += "\r\n";
}
detta blir resultatet. Jag fattar inte var det blir fel.. Får huvudvärk av så många loopar, finns det ett lättare sätt? Snälla hjälp mig och förklara var felet är
Nästlade loopar, som du skrivit, är ett sätt att lösa detta på. Men, eftersom resultatet ska bli en tabell i två dimensioner så är nästlade loopar i tre nivåer en för mycket. Om lösningen måste ha nästlade loopar så räcker två nivåer.
Det går att lösa mycket enklare med tre loopar efter varandra som lägger till rad för rad i tabellen. Koden blir då något längre men enklare att skriva och läsa. Prova det.
k går i takt med i och behöver ingen egen loop. Du kan räkna ut k från i.