6237 Programmering II (Csharp) Agenda/Loops

From Teknologisk videncenter
< 6237 Programmering II (Csharp) Agenda
Revision as of 16:51, 21 December 2016 by Heth (talk | contribs) (added Category:Csharp using HotCat)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Loops

Hvis man skal loope igennem et array af værdier findes der flere forskellige måde. Den simpleste er nok at anvende "foreach" her tilskrives streng variablen s en ny værdi fra arrayet strArr for hver gang loopet gennemløbes.


class Program
{
	static void Main(string[] args)
	{
	    String[] strArr = new String[4] { "Kurt", "Jacob", "Jens", "Pia" };

            foreach (String s in strArr)
            {
                System.Console.WriteLine(s);
            }
	}
}


Problemet med foreach er at man ikke kan ændre værdien for s inde i loopet. Eksemplet herunder vil altså give en fejl


foreach (String s in strArr)
{
	s = "Jakob";//Dette kan ikke lade sig gøre
	System.Console.WriteLine(s);
}


I stedet kan man anvende en for loop. Her kan man godt ændre på værdierne inde i loopet. Eksemplet her vil f.eks. udskifte Jacob med Jakob


class Program
{
	static void Main(string[] args)
	{
		String[] strArr = new String[4] { "Kurt", "Jacob", "Jens", "Pia" };

		for (int i = 0; i < strArr.Length; i++)
		{
			if (strArr[i] == "Jacob") strArr[i] = "Jakob";
		}
	}
}


Hvis vi ikke har en bestemt mængde men istedet vil fortsætte indtil en bestemt betingelse er opfyldt kan anvendes et while loop. Eksemplet herunder vil blive ved med at trække 360 fra tallet vinkel, indtil vinkel er mindre end 360.


class Program
{
	static void Main(string[] args)
	{
		Double vinkel = 2408.23;
		while (vinkel > 360)
		{
			vinkel -= 360;
		}
	}
}


Hvis man gerne vil sikre at loopet gennemløbes minimum en gang kan man istedet lave en do while.


class Program
{
	static void Main(string[] args)
	{
		Double vinkel = 2408.23;
		do
		{
			vinkel -= 360;
		}
		while (vinkel > 360);       
	}
}