JavaLogo: 'else' without 'if'

Status
Niet open voor verdere reacties.

JeroenJK

Gebruiker
Lid geworden
17 dec 2010
Berichten
151
Hallo,
Ik ben een JavaLogo cursus aan het doen, maar het gaat niet zoals ik wil.
Ik heb de volgende code:

Code:
/*
 * @(#)Bergen.java 12/12/02
 *
 * JavaLogo Project
 *
 */

import logotekenap.*;


public class Bergen extends TekenApplet 
{
	String kleur;
		
	public void initialiseer() 
	{
		kleur = "rood";
	}
	
		public void tekenprogramma()
	{
		int teller;
		
		teller = 1;
		while (teller <= 25)
		{
			bepaalKleur();
			vierkant();
			teller = teller + 1;
		}
	}
	
	public void bepaalKleur()
	{
		if (kleur.equals("rood"));{
		kleur = "geel";}
		
		else if (kleur.equals("geel"));{       HIERRRRRRR
		kleur = "blauw";}
		
		else {                                 HIERRRRRRR
		kleur = "rood";}
		
	}
	
	public void vierkant()
	{
		int teller;
		teller = 1;
		
		while (teller <= 4)
		{
		pen.vulAan(kleur);
		pen.rechts(90);
		pen.vooruit(150);
		teller = teller + 1;
		}
	}
	
}

Maar ik krijg 2 keer de melding "'else' without 'if'".

Ik heb het woord "HIERRRRRRR" neergezet op de lijn waar die de error geeft.

Hopelijk ziet iemand een reden voor die error...

Bedankt!
 
Het probleem komt door de puntkomma achter de if's.
Jouw code
Code:
if (kleur.equals("rood"));{
kleur = "geel";}

else if (kleur.equals("geel"));{       HIERRRRRRR
kleur = "blauw";}
		
else {                                 HIERRRRRRR
kleur = "rood";}
betekent dit
Code:
if (kleur.equals("rood")){
;
}
{
kleur = "geel";}

else if (kleur.equals("geel")){
;
}
{       HIERRRRRRR
kleur = "blauw";}
		
else {                                 HIERRRRRRR
kleur = "rood";}

Met andere woorden, als de if waar is voert hij ; uit (niets). Als je maar een regel wilt laten uitvoeren na een if, hoef je daar geen accolades omheen te zetten. Aan de code hierboven kan je zien dat de else staat na een stuk code dat weliswaar tussen accolades staat (mag je overal neerzetten als je wilt), maar die accolades horen niet bij de if's. Als je de puntkomma's achter de if's weghaalt zou je deze foutmelding niet meer moeten krijgen.
 
Bedankt, nu krijg ik geen foutmelding meer!

Nu is dit de code:
Code:
/*
 * @(#)Bergen.java 12/12/02
 *
 * JavaLogo Project
 *
 */

import logotekenap.*;


public class Bergen extends TekenApplet 
{
	String kleur;
		
	public void initialiseer() 
	{
		kleur = "rood";
	}
	
		public void tekenprogramma()
	{
		int teller;
		
		teller = 1;
		while (teller <= 25)
		{
			bepaalKleur();
			vierkant();
			teller = teller + 1;
		}
	}
	
	public void bepaalKleur()
	{
		if (kleur.equals("rood")){
		kleur = "geel";}
		
		else if (kleur.equals("geel")){
		kleur = "blauw";}
		
		else {
		kleur = "rood";}
		
	}
	
	public void vierkant()
	{
		int teller;
		teller = 1;
		
		while (teller <= 4)
		{
		pen.vulAan(kleur);
		pen.rechts(90);
		pen.vooruit(150);
		teller = teller + 1;
		}
	}
	
}

Als resultaat krijg ik nu 1 zwart vierkant, terwijl het een waaier van 25 vierkant moet zijn van 3 verschillende kleuren (afbeelding).
Weet u ook hoe dit komt?

Screen Shot 2012-12-30 at 4.10.48 PM.png

En dan heb ik nog een vraagje: Weet iemand ook een cursus Java voor de èchte beginners die eigenlijk nog niet kunnen programmeren? (Ik ga volgend jaar HBO informatica doen en een kennis die het ook heeft gedaan zei dat Java echt handig was om te kunnen.) Of zal ik een nieuw topic maken?
 
Laatst bewerkt:
Waarschijnlijk krijg je wel 25 vierkanten, maar worden ze allemaal op dezelfde plek getekend en zie je er dus maar een (hoewel ik niet weet waarom deze zwart is). Om zo'n waaier te krijgen moet je na het tekenen van een vierkant de pen verplaatsen en draaien zodat het volgende vierkant op een andere plek en onder een andere hoek wordt getekend.

Het antwoord op je andere vraag weet ik niet.
 
Bedankt, u had gelijk, ze werden over elkaar getekend. Als ik in vierkant() na while zet pen.links(190); dan draait die telkens 10 graden en zie je ze wel.
Dat van de kleuren snap ik ook niet echt, want ik heb het precies zo gedaan als in de cursus.

Misschien weet iemand anders nog een antwoord op de vraag over een goede Java cursus voor beginners?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan