## Opdracht 7.1 - Wisselkoersen-applet I

Doel
Het doel van deze opdracht is om te leren wat er wordt bedoeld met het if-else statement en hoe je deze moet schrijven. Dit gaan we doen aan de hand van de EuroDollar-applet. Omdat we de applet zo gaan uibreiden dat je het aantal euro's kan omzetten in meerdere valuta's, is een naamwijziging van de applet wel gepast. Laten we de applet van nu af aan de Wisselkoersen-applet noemen!

Interface
De Wisselkoersen-applet moet er zo uitkomen te zien:

Zoals je ziet, is er aan de applet (t.o.v. de EuroDollar-applet) één extra invoerveld toegevoegd. Deze wordt gebruikt voor het invoeren van de munteenheid. Laten we dit invoerveld munteenheidveld noemen.

Werking
De applet moet als volgt werken: als de gebruiker een 1 invoert in het munteenheidveld dan moet het aantal euro's worden omgezet naar het aantal Japanse yen, is er een ander getal ingevoerd dan een 1 dan moet het aantal euro's (nog steeds) worden omgezet in het aantal dollars.

Aanpak

Begin het maken van deze applet door:

1. Een nieuwe applet aan te maken in een nieuwe map.
2. De interface na te bouwen.

De interface bestaat uit de volgende widgets:

Type | Naam en/of tekst in/op de widget
Label | Euro, Munteenheid, Uitkomst
NumberField | euroveld, munteenheidveld, uitkomstveld
Button | Bereken!
Label | 1 = Japanse yen, dollars / yen

Let op:

- Op de knop mag wel de tekst Bereken! staan maar het uitroepteken mag niet in de naam van de knop staan! Geef de knop dus een andere naam.

Code schrijven
Begin door de code te schrijven voor het ophalen van de getallen uit de invoervelden euroveld en munteenheidveld. Plaats deze code in de event-handler van de knop Bereken!.

Hulpvragen

- De gebruiker moet een decimaal getal in kunnen voeren in het euroveld. Welke actie/methode van deze widget moet je dus kiezen? En van welk datatype moet de variabele waarin je het getal 'opvangt' dus ook zijn?
- De gebruiker moet in het munteenheid uitsluitend hele getallen kunnen invoeren. Welke actie/methode van deze widget moet je dus kiezen? En van welk datatype moet de variabele waarin je het hele getal 'opvangt' dus ook zijn?

Als je klaar bent met het schrijven van de code voor het ophalen van de getallen uit de invoervelden kunnen we de code gaan schrijven die ervoor zorgt dat als de gebruiker een 1 heeft ingevoerd in het munteenheidveld het aantal Japanse yen wordt berekent en als er een ander getal is ingevoerd nog steeds het aantal dollars wordt berekend.

Begin door een nieuwe variable aan te maken met de naam resultaat en van het datatype double. Deze variabele gaan we gebruiken voor het opslaan van het aantal Japanse yen of het aantal dollars.

Bij de vorige opdrachten heb je steeds in het Nederlands moeten verwoorden hoe de code moet functioneren. Laten we dat nu ook doen!
De code moet als volgt functioneren:
Als de gebruiker een 1 heeft ingevoerd dan moet het aantal Japanse yen worden berekend. Is er een ander getal dan 1 ingevoerd dan moet het aantal dollars worden berekend.
Als je bovenstaande tekst goed leest dan lees je dat er een keuze moet worden gemaakt in de code: als er een 1 is ingevoerd dan moet het aantal Japanse yen worden berekent en is dat niet het geval dan moet het aantal dollars worden berekend.
Voor het maken van een keuze in een stuk code bestaat er een speciale constructie: het if-else statement. Een if-else statement heeft altijd de onderstaande structuur.

If-else statement

    if (logische expressie){

        // A

     } else {

        // B

     }

Uitleg
Met een logische expressie wordt een stelling bedoeld die maar twee mogelijke uitkomsten heeft; of de stelling is waar (true) of de stelling is onwaar (false).
De stelling die je voor deze applet moet schrijven, ziet er als volgt uit:

    munteenheid == 1

Met het dubbele gelijkteken geef je aan dat je de twee waarden (de variabele munteenheid en het getal 1) met elkaar wilt vergelijken. Het dubbele gelijkteken is een voorbeeld van een relationele operator. Het dubbele gelijkteken is de meest gebruikte operator maar er zijn er meer. Een overzicht van alle operatoren kan je vinden op slide 62 van de presentatie Programmeren met Java.

Het if-else statement werkt voor de rest als volgt:

- Als de uitkomst van de vergelijking (munteenheid == 1) waar is dan wordt de code die staat op plek A uitgevoerd.
- Is de uitkomst van de vergelijking niet waar (bijvoorbeeld omdat de gebruiker een 2 heeft ingevoerd) dan wordt de code die staat op plek B uitgevoerd.

Met behulp van de bovenstaande kennis kunnen we de code voor het maken van de keuze, schrijven:

1. Plaats in jouw code de constructie van het if-else statement (de code hierboven).
2. Plaats tussen de twee haakjes de logische expressie munteenheid == 1.
3. Schrijf op plek A de code die ervoor zorgt dat het aantal Japanse yen wordt berekend en wordt toegekend aan de variabele resultaat.
4. Schrijf op plek B de code die ervoor zorgt dat het aantal dollars wordt berekend en wordt toegekend aan de variabele resultaat.

Vervolgens kan je de applet af maken door de code te schrijven die ervoor zorgt dat het aantal Japanse yen / dollars wordt getoond in het uitkomstveld. Plaats deze code onder het if-else statement (dit is het meest efficiënt).

Ben je helemaal klaar met de code? Lees deze dan nog een keer helemaal rustig door en controleer of je niet ergens een spelfout hebt gemaakt. Controleer ook of elke regel code eindigt op een puntkomma. Als je dat gedaan hebt, kan je de applet runnen en kijken of deze goed werkt. Krijg je een foutmelding? Lees dan bij Veelgestelde vragen hoe je deze moet lezen en hoe je de fout eruit kan halen.