3. Keuze

Om een keuze te kunnen programmeren wordt in C++ het if-statement gebruikt.

if (voorwaarde) {
      code
} 
else {
     code
}

De voorwaarde in een if-statement is een klein stukje programma dat waar of niet waar kan zijn. Als voorbeeld bekijken we een programma waarin je een variabele getal van het type integer hebt gedefinieerd, en als voorwaarde stelt getal < 10. Als getal dan bijvoorbeeld de waarde 9 heeft, levert de voorwaarde getal < 10 als uitkomst waar op. Maar als getal de waarde 12 heeft, dan is het resultaat van de voorwaarde niet waar. In C++:

#include <iostream>
using namespace std;

int main() {
  int getal;                
  cout << "Voer een getal in: " << endl;      
  cin >> getal;                  
  if (getal < 10) {
    cout << "Het getal is kleiner dan 10" << endl;
  }
  else {
    cout << "Het getal is groter of gelijk aan 10" << endl;
  }
  return 0;
}

Als de voorwaarde waar oplevert dan wordt de code in het eerste gedeelte uitgevoerd. In het voorbeeld is dat het geval als getal < 10. Als er een else gedeelte is dan wordt dat alleen uitgevoerd als de voorwaarde niet waar oplevert. Het else gedeelte is niet verplicht, je kunt het weglaten als je het niet nodig hebt.

De operatoren die je bij voorwaarde kan gebruiken zijn:

  • == (gelijk)

  • != (ongelijk aan)

  • > (groter dan)

  • < (kleiner dan)

  • >= (groter dan of gelijk aan)

  • <= (kleiner dan of gelijk aan)

Opdracht 3.1 Schrijf een programma dat de afstand naar school inleest en als uitvoer geeft of je kan lopen of met de fiets moet. Bedenk zelf welke afstand je groot genoeg vind om niet meer te willen lopen.

Het is mogelijk om meerdere if-statements achter elkaar te schrijven.

if (voorwaarde1) {
     //Als voorwaarde1 waar is
} else if (voorwaarde2) {
     //Als voorwaarde1 niet waar is en voorwaarde2 wel waar is
} else { 
     //Als voorwaarde1 en voorwaarde2 niet waar zijn
}

Opdracht 3.2 Voeg de optie bus toe aan het programma van de vorige opgave. Bedenk zelf welke afstand je groot genoeg vind om niet meer te willen fietsen.

Opdracht 3.3 Schrijf een programma dat 3 getallen inleest en als uitvoer de laagste van de 3 getallen geeft.

Het is mogelijk om meerdere if-statements in elkaar te schrijven. Dit noemen we nesting.

if (getal1 < 10) {
    if (getal2 < 10) {
         cout << "getal1 en getal2 zijn beide kleiner dan 10";
     }
}

Opdracht 3.4 Schrijf een programma waarbij de gebruiker een jaartal kan invoeren en dat als uitvoer geeft of dit getal een schrikkeljaar is of niet. De regels om een schrikkeljaar te bepalen zijn:

  • Een jaar is een schrikkeljaar als het een 4-voud is maar niet een 100-voud, of

  • Een jaar is een schrikkeljaar als het een 400-voud is.

  • Voor 1582 waren er geen schrikkeljaren.

Voorbeeld: 1900 is geen schrikkeljaar maar 2000 wel.

Opgaves inleveren

Als je meedoet met een programmeerwedstrijd dan wordt je code automatisch nagekeken. Je code wordt getest met verschillende testcases. Belangrijk is dan dat je invoer en uitvoer precies voldoet aan wat er verwacht wordt. In de volgende opdracht gaan we code inleveren zodat deze automatisch nagekeken wordt.

Opdracht 3.5 De eerste opgave die we gaan inleveren is je schrikkeljaar code. De beschrijvingen van de invoer en uitvoer voor je schrikkeljaar code zijn: Invoer: Lees een regel in met daarop een positief geheel getal, dit is het jaartal. Uitvoer: Schrijf een regel met daarop ja als het een schrikkeljaar is en nee als het geen schrikkeljaar is. Voorbeeld Invoer: 2000 Uitvoer: ja

  • Pas je code uit de vorige opgave aan zodat de invoer (cin) en uitvoer (cout) precies voldoen aan bovenstaande beschrijving. Zorg ervoor dat je GEEN cout hebt die de gebruiker om invoer vraagt zoals: cout << "Geef een jaartal";. In dit geval wordt je programma namelijk fout gerekend omdat er alleen een "ja" of "nee" als uitvoer verwacht wordt. Zorg ook dat je "ja" en "nee" met alleen kleine letters schrijft.

  • Zet bovenin je code in commentaar je naam. Dit is handig voor ons. // Deze code is geschreven door: <Naam>

  • Plak je volledige code in het tekst vak

  • Je moet nu even wachten terwijl je code wordt nagekeken

Last updated