OLD [G_PRO] Programmeren en OO programmeren
experimental-merge3
experimental-merge3
  • Welkom
  • Inleiding
    • Benodigdheden
    • Afspraken code
    • Afspraken oefeningen
    • Nuttige extras
    • Dankwoord
    • Mee helpen?
  • Semester 1: Programming Principles
    • H0: Werken met Visual Studio
      • Introductie tot C#
      • Werken met Visual Studio
      • Je eerste programma
      • Input verwerken met ReadLine
      • Fouten in je code
      • Kleuren in Console
      • Oefeningen
    • H1: Variabelen en datatypes
      • De essentie van C#
      • Datatypes
      • Variabelen
      • Expressies en operators
      • Oefeningen
    • H2: Tekst in code
      • Strings en chars
      • Strings samenvoegen
      • Unicode tonen
      • Oefeningen
      • Uitbreidingsoefeningen
    • H3: Werken met data
      • Casting, conversie en parsing
      • Input verwerken en omzetten
      • Math-library en berekeningen
      • Random
      • Debuggen
      • Oefeningen
    • H4: Beslissingen
      • Beslissingen intro
      • Booleanse logica en operators
      • If
      • Scope van variabelen
      • enum
      • Switch
      • Oefeningen
    • H5: Loops
      • Loops intro
      • While en Do While
      • For
      • Nesting
      • Programma flow analyse
      • Oefeningen deel 1
      • Oefeningen deel 2
      • Oefeningen deel 3
    • H6: Methoden
      • Methoden intro
      • Bibliotheken
      • Geavanceerde methoden
      • Oefeningen
      • Uitbreidingsoefeningen
    • H7: Arrays
      • Array principes
      • Werken met arrays
      • Arrays en methoden
      • N-dimensionale arrays
      • Oefeningen deel 1
      • Oefeningen deel 2
  • Semester 2 : OOP
    • H8: Klassen en objecten
      • OOP Intro
      • Klassen en objecten in C#
      • Methoden en access modifiers
      • Properties
      • DateTime: leren werken met objecten
      • (Klassikale!) smaakmaker OOP
      • Oefeningen
    • H9: Geheugenmanagement bij klassen
      • Objecten en methoden
      • Stack en Heap
      • Null en NullReferenceException
      • Oefeningen
    • H10: Advanced klassen en objecten
      • Constructors
      • Static
      • Spelen met strings
      • Oefeningen
    • H11: Arrays en klassen
      • Arrays van objecten
      • Foreach en var
      • List
      • Oefeningen
    • H12: Overerving
      • Overerving intro
      • Base keyword
      • Constructors bij overerving
      • Virtual en override
      • Oefeningen
    • H13: Advanced overerving
      • System.Object
      • Abstract
      • Oefeningen
    • H14: Compositie
      • Compositie
      • Oefeningen
    • H15: Polymorfisme
      • Polymorfisme
      • Is en As keywords
      • Objecten vergekijken: alles komt samen
      • Oefeningen
    • H16: Interfaces
      • Interface intro
      • Interfaces in de praktijk
      • Polymorfisme en interfaces
      • Oefeningen
  • Appendix
    • Ea-ict coding guidelines
    • Oefeningen kerkhof
  • Semester 1 appendix
    • Nice to know stuff
      • Out en Ref parameters
      • Jagged arrays
    • All-In-Projecten
      • Overzicht
      • Console Matrix
      • Ascii filmpjes maken met loops
      • Ascii filmpjes maken met methoden
      • Fun with methods: een verhaalgenerator
      • Tekst-gebaseerd Maze game
      • Conway game of life
  • Semester 2 appendix
    • Nice to know stuff
      • Operator overloading
      • Expression bodied members
    • All-In-Projecten
      • Overzicht
      • OO Textbased Game
      • War Simulator
      • Map Maker
      • Magic The Gathering API
  • Pro (geen leerstof en/of in opbouw)
    • Bitwise operators
    • Generics en collections
      • Generics methoden en types
      • Generic classes en constraints
      • Collections
      • Labo-oefeningen
    • Exception handling
      • Werken met exceptions
      • Waar exceptions plaatsen
      • Zelf uitzonderingen maken
    • Events
      • Events
      • Chat server
Powered by GitBook
On this page
  • Switch
  • Opgelet:
  • Falthrough

Was this helpful?

Export as PDF
  1. Semester 1: Programming Principles
  2. H4: Beslissingen

Switch

Switch

Een switch statement is een program-flow element om een veelvoorkomende constructie van if/if else...else elementen eenvoudiger te tonen. Vaak komt het voor dat we bijvoorbeeld aan de gebruiker vragen om een keuze te maken (bijvoorbeeld een getal van 1 tot 10, waarbij ieder getal een ander menu-item uitvoert van het programma), zoals:

int option;
Console.WriteLine("Kies 1 voor afbreken, 2 voor opslaan, 3 voor laden:");
option = Convert.ToInt32(Console.ReadLine());

if (option == 1)
    Console.WriteLine("Afbreken gekozen");
else if (option == 2)
    Console.WriteLine("Opslaan gekozen");
else if (option == 3)
    Console.WriteLine("Laden gekozen");
else
    Console.WriteLine("Onbekende keuze");

Met een switch kan dit eenvoudiger. De syntax van een switch is een beetje specialer dan de andere programma flow-elementen (if, while, etc.), namelijk als volgt:

switch (value)
{
      case constant:
           statements
           break;
      case constant:
           statements
           break;
      default:
           statements
           break;
  }

value is de waarde of variabele (beide mogen) die wordt gebruikt als test in de switch. Iedere case begint met het case keyword gevolgd door de waarde die value moet hebben om in deze case te springen. Na het dubbelpunt volgt vervolgens de code die moet uitgevoerd worden in deze case. De case zelf mag eender welke code bevatten (methoden, nieuwe program flow elementen, etc.), maar moet zeker afgesloten worden met het break keyword.

Tijdens de uitvoer zal het programma value vergelijken met iedere case constant van boven naar onder. Wanneer een gelijkheid wordt gevonden dan wordt die case uitgevoerd. Indien geen case wordt gevonden die gelijk is aan value dan zal de code binnen de default-case uitgevoerd worden (de else achteraan indien alle vorige if else-tests negatief waren).

Het menu van zonet kunnen we nu herschrijven naar een switch:

int option;
Console.WriteLine("Kies 1 voor afbreken, 2 voor opslaan, 3 voor laden:");
option = Convert.ToInt32(Console.ReadLine());
switch (option)
{
    case 1:
        Console.WriteLine("Afbreken gekozen");
        break;
    case 2:
        Console.WriteLine("Opslaan gekozen");
        break;
    case 3:
        Console.WriteLine("Laden gekozen");
        break;
    default:
        Console.WriteLine("Onbekende keuze");
        break;
  }

Opgelet:

De case waarden moeten literals zijn. Dit zijn waarden die je letterlijk uitschrijft, d.w.z. die je niet voorstelt als variabele (1, "1", 1.0, 1.d, '1', etc.)

Falthrough

Soms wil je dat dezelfde code uitgevoerd wordt bij 2 of meer cases. Je kan ook zogenaamde fallthrough cases beschrijven wat er als volgt uit ziet:

switch (option)
{
    case 1:
        Console.WriteLine("Afbreken gekozen");
        break;
    case 2:
    case 3:
        Console.WriteLine("Laden of opslaan gekozen");
        break;
    default:
        Console.WriteLine("Onbekende keuze");
        break;
  }

In dit geval zullen zowel de waarden 2 en 3 resulteren in de zin "Laden of opslaan gekozen" op het scherm.

PreviousenumNextOefeningen

Last updated 5 years ago

Was this helpful?