Expressies in C#

  1. Inleiding
  2. if / else if / else
  3. switch case
  4. Slot
  5. Voorbeeldprogramma

Inleiding

Je schrijft een programma en wat moet het programma dan doen? Dat kan afhangen van de situatie. En hoe weet het programma welke situatie van toepassing is? Dat weet het programma via een expressie. We zullen het één en ander toelichten aan de hand van een voorbeeld waarin we willen weten wat een bank aan rentes hanteert voor haar leningen.

Stel dat we geld willen lenen en we willen weten wat de bank aan rentes hanteert voor haar leningen. De bank hanteert de volgende criteria voor de bepaling van haar (woeker) rentes:

LooptijdBedrag LeningRente
1 jaar< € 5.00065%
2 jaar>= € 5.00055%
OverigOverig45%

Een programma zal een expressie gebruiken om te bepalen welke situatie van toepassing is en in dit geval heeft de expressie een Looptijd en een Bedrag Lening nodig. In dit voorbeeld kunnen drie situaties zich voordoen en de expressie zal na evaluatie van de Looptijd en het Bedrag Lening aangeven welke situatie van toepassing is. Van het programma wordt ten slotte verlangd dat afhankelijk van de situatie een rente percentage wordt geretourneerd van of 65% of 55% of 45%.

De expressie zal in het geval van een programmeertaal bestaan uit een combinatie van waarden (operanden), variabelen, conditional statements en operatoren. De expressie zal dan ook bestaan uit het volgende:

  • wat geëvalueerd moet worden (de operanden) te weten twee te evalueren waarden die in de variabelen Looptijd en BedragLening staan
  • drie conditional statements (if, else if en else)
  • een && logical operator
  • drie comparison operators (== , < en >=)

We zetten de hele expressie als volgt in een functie: (&amp; = &)

up | down

if, else if, else conditional statements

static double RentePercentage(int Looptijd, 
                              double BedragLening)
{
  if(Looptijd == 1 && BedragLening < 5000)
  {
    // wat te doen als wordt voldaan
    // aan de eerste expressie
    return 65;
  }
  else if (Looptijd == 2 && 
           BedragLening >= 5000)
  {
    // wat te doen als wordt voldaan 
    // aan de tweede expressie
    return 55;
  }
  else 
  {
    // wat te doen als niet aan de 
    // eerdere expressies wordt voldaan
    return 45;
   }
}

En we roepen de functie aan:

public static void Main(string[] args)
{
  // variabelen
  int Looptijd; 
  double BedragLening; 
  Double PercentageRente;

  // Geval 1
  Looptijd = 1;
  BedragLening = 3000;
  PercentageRente = 
  RentePercentage(Looptijd,BedragLening);
  Console.WriteLine(
  "Bij een looptijd van {0} jaar en " +
  "een te lenen bedrag van {1} Euro " +
  "is het rentepercentage:{2}%", 
  Looptijd, BedragLening, PercentageRente);
  
  // Geval 2
  Looptijd = 2;
  BedragLening = 7000;
  PercentageRente =
  RentePercentage(Looptijd, BedragLening);
  Console.WriteLine(
  "Bij een looptijd van {0} jaar en " +
  "een te lenen bedrag van {1} Euro " +
  "is het rentepercentage:{2}%", 
  Looptijd, BedragLening, PercentageRente);

  // Geval 3
  Looptijd = 1;
  BedragLening = 9000;
  PercentageRente = 
  RentePercentage(Looptijd, BedragLening);
  Console.WriteLine(
  "Bij een looptijd van {0} jaar en " +
  "een te lenen bedrag van {1} Euro " +
  "is het rentepercentage:{2}%", 
  Looptijd, BedragLening, PercentageRente);
}

up | down

switch, case conditional statements

Het is sinds C# 7.0 mogelijk om een case conditional statement met een when conditional statement te gebruiken. De methode kunnen we dan ook als volgt herschrijven waarbij de case wordt gebruikt voor de looptijd en de when wordt gebruikt voor het bedrag van de lening:

static double RentePercentage2(int Looptijd, 
                               double BedragLening)
{
  double uitkomst;
  switch (Looptijd)
  {
    case 1 when BedragLening <5000:
    // wat te doen als wordt voldaan 
    // aan de eerste expressie
    uitkomst = 65;
    break;
    
    case 2 when BedragLening >=5000:
    // wat te doen als wordt 
    // voldaan aan de tweede expressie
    uitkomst = 55;
    break;
    
    default:
    // wat te doen als niet aan de eerdere
    // expressies wordt voldaan
    uitkomst = 45;
    break;
  }
  return uitkomst;
}

up | down

Slot

Je hebt mijn artikel gelezen en je hebt het gehaald tot dit punt? Dat doet me deugd. Ik ben er zo te zien in geslaagd je aandacht vast te houden tot het einde van dit artikel. Het blijkt maar weer dat geld lenen geld kost en dat het bouwen van een expressie leidt tot stevig programmeer werk.

Als je het een beetje modulair opzet dan kan je optimaal de vruchten plukken van je noeste arbeid door de expressie her en der opnieuw aan te roepen zodat je de expressie niet elke keer opnieuw hoeft te schrijven.

Ik hoop je weer terug te zien in één van mijn volgende blog posts. Wil je weten wat ik nog meer over C# heb geschreven? Hit the C# button…

up | down


Voorbeeldprogramma

using System;
namespace expressies
{   
  class MainClass
  {
   static double RentePercentage(
   int Looptijd, 
   double BedragLening)
   {
     if(Looptijd == 1 && BedragLening < 5000)
     {
       // wat te doen als wordt voldaan 
       // aan de eerste expressie
       return 65;
     }
     else if 
     (Looptijd == 2 && 
      BedragLening >= 5000)
      {
        // wat te doen als wordt voldaan 
        // aan de tweede expressie
        return 55;
       }
       else 
       {
          // wat te doen als niet aan de 
          // eerdere expressies wordt voldaan
          return 45;
       }
   }
   
   static double RentePercentage2(int Looptijd, 
                                  double BedragLening)
   {
     double uitkomst;
     switch (Looptijd)
     {
       case 1 when BedragLening <5000:
              // wat te doen als wordt voldaan
              // aan de eerste expressie
              uitkomst = 65;
              break;
             
       case 2 when BedragLening >=5000:
              // wat te doen als wordt voldaan aan 
              // de tweede expressie
              uitkomst = 55;
              break;
       
       default:
             // wat te doen als niet aan 
             // de eerdere expressies wordt voldaan
             uitkomst = 45;
             break;
       }
       return uitkomst;
   }
   
   public static void Main(string[] args)
   {
     // variabelen
     int Looptijd; 
     double BedragLening; 
     Double PercentageRente;
     
     // Geval 1
     Looptijd = 1;
     BedragLening = 3000;
     PercentageRente = 
     RentePercentage(Looptijd,BedragLening);
     Console.WriteLine(
     "Bij een looptijd van {0} jaar en " +
     "een te lenen bedrag van {1} Euro " +
     "is het rentepercentage:{2}%" , 
     Looptijd, 
     BedragLening, 
     PercentageRente);
     
     // Geval 2
     Looptijd = 2;
     BedragLening = 7000;
     PercentageRente = 
     RentePercentage(Looptijd, BedragLening);
     Console.WriteLine(
     "Bij een looptijd van {0} jaar en " +
     "een te lenen bedrag van {1} Euro " +
     "is het rentepercentage:{2}%", 
     Looptijd, 
     BedragLening, 
     PercentageRente);
     
     // Geval 3
     Looptijd = 1;
     BedragLening = 9000;
     PercentageRente = 
     RentePercentage(Looptijd, BedragLening);
     Console.WriteLine(
     "Bij een looptijd van {0} jaar en " +
     "een te lenen bedrag van {1} Euro " +
     "is het rentepercentage:{2}%", 
     Looptijd, 
     BedragLening, 
     PercentageRente);
   }
  }
}

up

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *