2 svar
97 visningar
Noawoh behöver inte mer hjälp
Noawoh 134
Postad: 26 mar 2021 09:58

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

Lindehaven 820 – Lärare
Postad: 26 mar 2021 12:46

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.

Laguna Online 30472
Postad: 26 mar 2021 12:47

k går i takt med i och behöver ingen egen loop. Du kan räkna ut k från i.

Svara
Close