Permalänk
Medlem

vektor c#

Vi har en vektor:
int[] numbers = new int[] {1,23,43,4,2435,2456,4};

Loopa genom hela vektorn och skriv ut värdena med en:

1. for-loop
2. foreach
3. while-loop
4. do-while-loop

det två första är ju fixat:

5. namespace ConsoleApplication3
6. {
7. class Program
8. {
9. static void Main(string[] args)
10. {
11. int[] numbers = new int[] { 1, 23, 43, 4, 2435, 2456, 4 };
12.
13. for (int i = 0; i <numbers.Length; i++)
14. {
15. Console.WriteLine(numbers[i]);
16.
17. }
18.
19.
20. }
21.
22. }
23. }

24. namespace ConsoleApplication3
25. {
26. class Program
27. {
28. static void Main(string[] args)
29. {
30. int[] numbers = new int[] { 1, 23, 43, 4, 2435, 2456, 4 };
31.
32. foreach(int number in numbers)
33. { Console.WriteLine(number);
34. }
35.
36. }
37.
38.
39. }
40.
41. }
42.
Men det andra två?
3. while-loop
4. do-while-loop

Permalänk
Hedersmedlem

Du kan använda while och do..while loopar nästan på samma sätt som du använder for. While gör jämförelsen innan kodblocket körs och do..while gör det efter kodblocket körts.

Du får nog specificera din fråga lite mer. Har du till att börja med koll på hur while och do..while funkar?

Visa signatur

Använd gilla för att markera nyttiga inlägg!

Permalänk
Medlem

Jag läser programmering 1 med c# på distans som är på 5 veckor, den första 1½ veckan låg jag sjuk, så man kan ju säga att jag läst kursen på 3½ vecka, man hinner knappt lära sig något innan man måste gå vidare i studieguiden. Allt för snabbt!!! Så jag har faktiskt anmält mig till en kvälls kurs, samma kurs med lärare. Bara för att jag verkligen vill lära mig den pga den högre utbildningen jag ska in på,,men de hjälper inte mig nu,,,och att förlänga kursen är ju inget alt för då får man knappt ut något av csn, och får man inte det då kan man inte betala sina räkningar, vilket man knappt kan ändå på de ynka 10 lök man får..
och läraren svarar ju knappt på något..

Permalänk
Medlem

Du behöver en räknare för att se till så att loopen är mindre än din arrays längd. Typ while(count < array.Length)

Permalänk
Medlem

while: http://coursepress.lnu.se/pub/education/course/1DV402/ht13/do...
do while är samma sak fast kontrollen sker i slutet av loopen istället för i början.

Permalänk
Medlem

While och Do-while är egentligen väldigt lika din vanliga for-loop.

while (condition) { // do stuff if condition was met } do { // do stuff - always run, condition breaks loop if not met after first run } while (condition);

Edit: Se även
while: http://msdn.microsoft.com/en-us/library/2aeyhxcd.aspx
do: http://msdn.microsoft.com/en-us/library/370s1zax.aspx

Permalänk
Medlem

En sökning på nätet hade svarat på det här mycket snabbare. Få inte panik när du ska lösa ett problem utan tackla det systematiskt och du kommer lösa det mesta. Våga ta dig tid att fundera!

Permalänk
Avstängd

Hälsa din lärare att det är förbjudet att använda do-while.

Visa signatur
Permalänk
Medlem
Skrivet av Ryuk00:

Hälsa din lärare att det är förbjudet att använda do-while.

But.. why?

Permalänk
Medlem
Skrivet av Ryuk00:

Hälsa din lärare att det är förbjudet att använda do-while.

Kan du motivera varför det skulle vara så?

Permalänk
Skrivet av RaBoX:

Kan du motivera varför det skulle vara så?

Klart det inte är förbjudet... men många undviker det eftersom det är rätt ovaligt = mer svårläst och att det lättare smyger sig in fel efter som man kör första iterationen utan något condition.

Men nu för tiden använder man väl nästan bara LINQ och foreach... senare versioner av .NET har optimerat foreach så det går riktigt snabbt.

Permalänk
Avstängd

Anledningen är att while är lättare att förstå än do-while, traditionellt sett så används inte do-while... utom i skolan.

Visa signatur
Permalänk
Avstängd
Skrivet av skurtbert:

Klart det inte är förbjudet... men många undviker det eftersom det är rätt ovaligt = mer svårläst och att det lättare smyger sig in fel efter som man kör första iterationen utan något condition.

Men nu för tiden använder man väl nästan bara LINQ och foreach... senare versioner av .NET har optimerat foreach så det går riktigt snabbt.

Blanda inte in LINQ å foreach i detta nu, hehe.

Visa signatur
Permalänk
Medlem
Skrivet av skurtbert:

Klart det inte är förbjudet... men många undviker det eftersom det är rätt ovaligt = mer svårläst och att det lättare smyger sig in fel efter som man kör första iterationen utan något condition.

Men nu för tiden använder man väl nästan bara LINQ och foreach... senare versioner av .NET har optimerat foreach så det går riktigt snabbt.

Okej, ibland kan man dock undvika kodduplicering genom "do-while" men för normal använding kan jag hålla med att det finns betydlig bättre alternativ, särkilt för iterering.

Permalänk
Medlem

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
int[] numbers = new int[] { 1, 23, 43, 4, 2435, 2456, 4 };

int counter = 0;
while(counter < numbers.Length)
{
Console.WriteLine(numbers[counter]);
counter++;
}
}

}
}

Permalänk
Medlem

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
int[] numbers = new int[] { 1, 23, 43, 4, 2435, 2456, 4 };
int counter = 0;
do
{
Console.WriteLine(numbers[counter]);
counter++;
}
while (counter < numbers.length);

}

}
}
nu ger mig Visual studio ett fel på length, den e markerad med ett rött streck?

Permalänk
Medlem

Fixat! Skulle ju vara ett stort L