break/continue; goto (undgå); scope; exceptions kontra guard checks
Brug break og continue korrekt, forstå hvorfor goto frarådes, anvend scope-regler sikkert, og vælg mellem exceptions og guard checks.
break/continue; goto (undgå); scope; exceptions kontra guard checks er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 2 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 3 lektioner i alt.
Oversigt over lektionen
Mål: Styr løkkens forløb med break/continue, undgå goto, respekter variablers variabelområde, og vælg mellem undtagelser og beskyttelseskontroller.
break i praksis
break afslutter løkken med det samme.
using System;
public class Program
{
public static void Main(string[] args)
{
for (int i = 1; i <= 10; i = i + 1)
{
if (i == 4)
{
Console.WriteLine("Stop at 4");
break; // exit loop completely
}
Console.WriteLine("i = " + i);
}
}
}
continue i praksis
continue springer den aktuelle iteration over og går videre til den næste.
using System;
public class Program
{
public static void Main(string[] args)
{
for (int i = 1; i <= 5; i = i + 1)
{
if (i % 2 == 0)
{
continue; // skip even numbers
}
Console.WriteLine("Odd: " + i);
}
}
}
Undgå goto
goto skaber spaghetti-kode; brug strukturerede løkker i stedet (while/for/foreach).
using System;
public class Program
{
public static void Main(string[] args)
{
// Goto works but harms readability; prefer structured loops.
int i = 0;
start:
i = i + 1;
Console.WriteLine("i = " + i);
if (i < 3)
{
goto start; // avoid using goto in real code
}
// Prefer: while loop (clear intent)
int j = 0;
while (j < 3)
{
j = j + 1;
Console.WriteLine("j = " + j);
}
}
}
Grundlæggende om variabelområder
Variabelområde defineres af klammeparenteser { }. Deklarér variabler tæt på anvendelsen, og undgå at genbruge navne i indlejrede blokke.
using System;
public class Program
{
public static void Main(string[] args)
{
int x = 10; // outer scope
if (x > 0)
{
int y = 5; // inner scope
Console.WriteLine("x + y = " + (x + y));
}
// y is not visible here; this would not compile:
// Console.WriteLine(y);
// Shadowing (avoid reusing names in nested scopes)
int value = 1;
{
int valueInner = 2; // use a new name instead of shadowing
Console.WriteLine("value=" + value + ", inner=" + valueInner);
}
}
}
Grundlæggende diagnostik
Brug beskyttelseskontroller til forventet ugyldigt input og undtagelser til usædvanlige tilstande.
using System;
public class Program
{
// Guard check: return a bool and an out parameter (no exception on normal invalid input).
public static bool TryDivide(int x, int y, out int result)
{
if (y == 0)
{
result = 0;
return false; // guard fail
}
result = x / y;
return true;
}
// Exceptional state: throw when something truly exceptional happens.
public static int PriceWithTax(int price, int ratePercent)
{
if (price < 0)
{
throw new ArgumentOutOfRangeException("price");
}
if (ratePercent < 0 || ratePercent > 100)
{
throw new ArgumentOutOfRangeException("ratePercent");
}
return price + (price * ratePercent / 100);
}
public static void Main(string[] args)
{
int r;
bool ok = TryDivide(10, 0, out r);
Console.WriteLine("TryDivide ok=" + ok + " result=" + r);
try
{
int total = PriceWithTax(100, 18);
Console.WriteLine("Total=" + total);
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
break kontra continue
Opsummering
Opsummering: Brug break til at afslutte og continue til at springe en iteration over; undgå goto; hold variabler i det rette variabelområde; foretræk beskyttelseskontroller til forventet ugyldigt input og undtagelser til usædvanlige tilstande.
Lær C# med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 93
- Lektioner
- 346
Ofte stillede spørgsmål
Er lektionen “break/continue; goto (undgå); scope; exceptions kontra guard checks” gratis?
Ja — hele teksten til “break/continue; goto (undgå); scope; exceptions kontra guard checks” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 3 lektioner i alt.
Hvad lærer jeg i “break/continue; goto (undgå); scope; exceptions kontra guard checks”?
Brug break og continue korrekt, forstå hvorfor goto frarådes, anvend scope-regler sikkert, og vælg mellem exceptions og guard checks. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C# Academy?
Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 3.
Hvor lang tid tager lektionen “break/continue; goto (undgå); scope; exceptions kontra guard checks”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C# Academy-lektion?
Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- if/else, switch (klassisk), løkker: for, while, do, foreach
- break/continue; goto (undgå); scope; exceptions kontra guard checks
- Enkel diagnosticering: exceptions kontra guard checks