Under dag 2 fokuserar vi på att lära oss grunderna i C#-syntax och hur det skiljer sig från andra språk som Java och JavaScript. Målet är att förstå hur C# hanterar variabler, datatyper och kontrollstrukturer. Låt oss bryta ner dessa områden.
C# är ett starkt typat språk, vilket betyder att varje variabel måste deklareras med en specifik datatyp. C# har två huvudkategorier av datatyper: värdetyper och referenstyper.
Värdetyper lagrar sina data direkt i minnet där de deklareras. När du tilldelar en variabel med en värdetyp kopieras värdet, vilket innebär att varje variabel har sin egen kopia av data.
int, double, bool, char, struct.Exempel:
int a = 5;
int b = a; // b får en kopia av värdet i a
a = 10; // Ändrar inte värdet på b
Console.WriteLine(b); // Utskriften är 5
Referenstyper lagrar en pekare till den plats i minnet där datan lagras. När du tilldelar en referenstyp till en annan variabel delar de båda samma pekare, vilket innebär att om en variabel ändras så ändras även den andra.
object, string, arrays, class.Exempel:
int[] arr1 = {1, 2, 3};
int[] arr2 = arr1; // arr2 pekar på samma array som arr1
arr1[0] = 10; // Ändring i arr1 påverkar arr2
Console.WriteLine(arr2[0]); // Utskriften är 10
I C# måste alla variabler deklareras med en typ innan de används. Här är några vanliga datatyper och hur de används:
Exempel:
int number = 10;
double pi = 3.14;
bool isTrue = true;
string name = "John";
char letter = 'A';
C# har flera typer av operatorer, inklusive:
Aritmetiska operatorer: +, -, *, /, %
int sum = 5 + 10; // 15Jämförelseoperatorer: ==, !=, >, <, >=, <=
bool isEqual = (5 == 10); // falseLogiska operatorer: && (och), || (eller), ! (inte)
bool result = (true && false); // falseEtt uttryck är en kombination av variabler, operatorer och värden som evalueras till ett resultat. Du kan skapa komplexa uttryck med både aritmetiska och logiska operatorer.
Exempel:
int a = 5;
int b = 10;
int result = (a + b) * 2; // Resultatet blir 30
bool isGreater = (a > b); // false
Kontrollstrukturer låter dig styra flödet i ditt program baserat på vissa villkor eller genom att repetera en viss sekvens av kod.
Den enklaste kontrollstrukturen i C# är if-else. Den används för att köra viss kod om ett villkor är sant, och eventuellt annan kod om villkoret är falskt.
Exempel:
int number = 10;
if (number > 5) {
Console.WriteLine("Numret är större än 5");
} else {
Console.WriteLine("Numret är 5 eller mindre");
}
switch är användbart när du har flera möjliga fall att testa och vill undvika långa if-else-kedjor. Det jämför ett uttryck med flera värden och kör motsvarande kodblock.
Exempel:
int day = 3;
switch (day) {
case 1:
Console.WriteLine("Måndag");
break;
case 2:
Console.WriteLine("Tisdag");
break;
case 3:
Console.WriteLine("Onsdag");
break;
default:
Console.WriteLine("Okänd dag");
break;
}
Loops används för att repetera kodblock flera gånger baserat på ett villkor.
For-loop: Används när du vet hur många gånger du vill upprepa något.
for (int i = 0; i < 5; i++) {
Console.WriteLine(i); // Skriver ut 0 till 4
}
While-loop: Körs så länge ett villkor är sant.
int j = 0;
while (j < 5) {
Console.WriteLine(j);
j++;
}
Do-while-loop: Körs minst en gång innan villkoret testas.
int k = 0;
do {
Console.WriteLine(k);
k++;
} while (k < 5);
För att praktisera dagens teori, rekommenderas att du implementerar små program där du övar på variabelhantering, kontrollstrukturer och loops. Här är några förslag:
Program 1: Villkorsstyrd inmatning
if-else-struktur för att testa villkoren.Exempel:
Console.WriteLine("Mata in ett tal:");
int number = int.Parse(Console.ReadLine());
if (number > 0) {
Console.WriteLine("Talet är positivt");
} else if (number < 0) {
Console.WriteLine("Talet är negativt");
} else {
Console.WriteLine("Talet är noll");
}
Program 2: Enkel miniräknare med switch
switch för att implementera de olika operationerna.Program 3: Loopar och array-manipulering
Efter denna dag kommer du att ha en stabil förståelse för hur du kan deklarera variabler, använda operatorer och kontrollstrukturer samt repetera kod med loopar i C#. Detta ger dig grunden för att kunna bygga mer komplexa program i de kommande dagarna!