Skip to main content

Les 3, Vergelijkingen en if statement

In deze les gaan we leren wat conditionele statements zijn dit zijn statements met een if-then-else.

Vergelijkingen

Een vergelijking is wanneer je twee waarden vergelijkt: is de één groter dan de ander, of juist kleiner. Voor vergelijkingen kun je verscheillende vergelijkings-operatoren gebruiken. hieronder staan de meest gebruikte.

Vergelijkings operator Betekenis
== waarde is gelijk
!= waarde is ongelijk
> waarde is groter dan
>= waarde is groter dan of gelijk
< waarde is kleiner dan
<= waarde is kleiner dan of gelijk

Als de vergelijking klopt is die true (waar) als die niet klop dan is die false (niet waar).

Opdracht 1

Zet nu zelf true of false achter de vergelijkingen

Opdracht Vergelijking true of false?
a (12 == 13)  
b (12 > 13)  
c (12 < 13)  
d (13 >= 13)  
e (12 <= 13)  
f ( 'a' != 'b' )  

Bij een if statement volgt een vergelijking als die true is dan wordt er uitgevoerd wat er achtetr de if staat. Als de vergelijking achtern de if niet waar is dan wordt de code na de if niet uitgevoerd maar wordt eventueel wel de code die bij de else staat wordt uitgevoerd.

Dus:

// Voorbeeld 1
if (vergelijking) {
	// dit wordt uitgevoerd als de vergelijking true is
}

// Voorbeeld 2
if (vergelijking) {
	// dit wordt uitgevoerd als de vergelijking true is
} else {
	// dit wordt uitgeoverd als de vergelijking false is
}

// Probeer het nu zelf:
if ( 13 < 14 ) {
	document.write('De vergelijking was true');
} else {
	document.write('De vergelijking was flase');
}

Opdracht 2

Geef van elk van de volgende vergelijkingen aan of er true of false uit komt.

// opgave a
if ( 13!=12 ) { .... // true or false?

// opgave a
if ( 13>=12 ) { .... // true or false?

// opgave b
if ( 13!=12 && 13==12 ) { .... // true or false?

// opgave c
if ( 13!=12 || 13==12 ) { .... // true or false?

// opgave d
if ( 13>=12 && 13<=12 && 0<1 ) { .... // true or false?

// opgave e
if ( 13<=12 || 13<=12 || 0!=1 ) { .... // true or false?

// opgave f
if ( 13<=12 || 13<=12 || 0<=1 ) { .... // true or false?

// opgave g
if ( 13==12 || 13<=12 || 0<=1 ) { .... // true or false?

Opdracht 3

En nu een ander voorbeeld. Vervang de .... in de inderstaande code met een vergelijking die true is wanneer het geslacht van het kind man is.

var kind="Alexis";
var geslacht="man";
if ( .... ) {
	document.write( kind + ' is mijn zoon');
} else {
	document.write( kind + ' is mijn dochter');
}

Een if statement kan nog complexer.

var leeftijd = 22;

if (leeftijd <= 6 ) {
	document.write('Je bent een kleuter');
} else if ( leeftijd <= 12 ) {
	document.write('Je bent een scholier');
} else if ( leeftijd <= 18 ) 
	document.write('Je bent nog steeds leerplichtig');
} else {
	document.write('Je bent bijna volwassen');
}

Opdracht 4

Pas de bovenstaande code aan zodat wanneer je 21 of ouder bent je afdrukt 'Je bent volwassen!'.

Opdracht 5

Je hebt drie variabelen:

var cijferVanJohn = 7;
var cijferVanJane = 5;
var voldoendeVanaf = 6;

Je kunt de cijfers varieren en je moet nu een stukje code maken dat bepaald wie er is geslaagd. Afhankelijk van het resultaat wordt er één van de volgende regesl afgedrukt:

  1. Eén van de studenten is geslaagd
  2. Beide studenten zijn geslaagd
  3. Geen van de studenten is geslaagd

In dit voorbeeld (met de cijfers zoals die zijn gegeven), zou regel 1 dus worden afgedrukt. Maar verander nu het cijfer van Jane naar een 9 en kijk of dan boodschap 2 wordt afgedrukt. Ten slotte moet je ook nog testen of boodschap 3 wordt afgedrukt.

Opdracht 6

Maak nu een scripje dat twee vragen aan de gebruiker stelt. Vraag 1 is welk jaar bent u geboren? Vraag 2 is bent u dit jaar jarig geweest. Aan de hand van de twee antwoorden druk je nu af hoe oud de persoon is.

  • Voorbeeld ik ben geboren in 2002 en ik ben 31 december jarig dan ben ik dus 16.
    De computer vraagt eerst: "Wanneer bent u geboren?" en de gebruiker voert 2002 in.
    Dan vraagt de computer: "Bent u al jarig geweest (ja/nee)?" en de gebruiker voert ja in.
    Op het scherm verschijnt nu: "u bent 16 jaar oud".

  • Voorbeeld ik ben geboren in 2000 en ben in juni harig dan ben ik dus 18.
    De computer vraagt eerst: "Wanneer bent u geboren?" en de gebruiker voert 2000 in.
    Dan vraagt de computer: "Bent u al jarig geweest (ja/nee)?" en de gebruiker voert nee in.
    Op het scherm verschijnt nu: "u bent 18 jaar oud".

Opdracht 7

In plaats van te vragen of iemand al jarig is geweest met het prompt commando kan je ook het commando confirm() gebuiken. Tussen haakjes zet je de vraag van de gebruiken en de waarde die terugkomt is true or false. De waarde is true als de gebruiker Yes heeft ingedrukt en false als de gebruiker Cancel heeft ingedrukt.

Vul de onderstaande code aan en plaats op de plaats van de ........ de juistge code.

var leeftijd=promtp(.......);
var antwoord=confirm('Ben je al jarig geweest (Yes=ja en Cancel=nee)?');
if (.........) {
document.write("U bent "+ .... + " jaar");
} else {
document.write(................);
}

Opdracht 8

Vraag de gebruiker om een getal in te voeren en daarna nog een keer (zoals we dit eerder ook deden bij de opdracht waarbij we twee getallen moesten vermenigvuldigen). Maak nu een sciptje dat deze twee getallen vraagt en druk dan het grootste getal af (op de manier zoals in het voorbeeld hieronder is weergegven). Als de getallen gelijk zijn dan informeert het scripje de gebruiker dat de getallen gelijk zijn.

Voorbeelden;

  • De gebruiker voert 12 en 10 in. Het scipje drukt af: 12 is groter dan 10
  • De gebruiker voert 13 en 13 in. Het scipje drukt af 13 is gelijk aan 13.

Opdracht 9

Breidt het scripje van opgave 8 uit met drie getallen.
Voorbeeld van de output:
De gebruiker voert 12, 10 en 9 in. Het scriptje drukt af: 12 is groter dan 10 en 9.
De gebruiker voert 11, 10 en1 9 in. Het scriptje drukt af: 19 is groter dan 10 en 11.
De gebruiker voert 12, 12 en 9 in. Het scripje drukt af: er is geen getal dat groter is dan de anderen.
De gebruiker voert 12, 12 en 12 in. Het scripje drukt af: er is geen getal dat groter is dan de anderen.

Opdracht 10

Probeer te ontdekken wat de volgende code doet en vul de regels 7 en 9 aan. Zet code op de plaats van de puntjes zodat de code werkt.

getal1=Math.floor(Math.random() * 101);  // neem een random getal tussen 1 en 100
getal2=Math.floor(Math.random() * 11);	 // neem een random getal tussen 1 en 10
    
antwoord=prompt("Wat is "+getal1+"%"+getal2+"?"); // geef de gebruiker een som
    
document.write("Wat is "+getal1+"%"+getal2+"?<br>"); // schrijf de som naar de brwoser
document.write("Gegeven antwoord "+........+"<br>"); // schrijf het gegeven antwoord naar de browser
    
if ( .......... ){ // is het gegeven antwoord goed?
	document.write("Goed zo!")
} else {
	document.write("Helaas niet goed")
}

--