Springen naar inhoud


- - - - -
Solved

Returninstructie Bevindt Zich Buiten De Functie..Waarom?



  • Log in a.u.b. om te beantwoorden
Er zijn 12 reacties in dit onderwerp

#1 oscar.thys

oscar.thys

    Senior Developer

  • Leden
  • PipPipPip
  • 103 berichten
    Laatst bezocht 13 mei 2015 10:18

Geplaatst op 29 maart 2014 - 20:52

Java Code:
var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();
if (computerChoice < 0.34) {
computerChoice = "rock";
} else if(computerChoice <= 0.67) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
} console.log("Computer: " + computerChoice);
var compare = function(choice1, choice2) {
	if(choice1 === choice2) {
		return "The result is a tie";
	}
else if (choice1 === "rock") {
	 if (choice2 === "scissors") {
		 return "rock wins";
		 }
		 else if (choice2 === "paper"){
	return "paper wins";
	}
}};
if(choice1 === "paper"){
	if (choice2 === "rock"){
	return "paper wins";
}else if(choice2 === "scissors"){
		return "scissors wins";
		}
	}



#2 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1043 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 30 maart 2014 - 10:57

Dat is geen java, maar javascript.
Dus de eerste vraag: wil je java of javascript?

#3 oscar.thys

oscar.thys

    Senior Developer

  • Leden
  • PipPipPip
  • 103 berichten
    Laatst bezocht 13 mei 2015 10:18

Geplaatst op 30 maart 2014 - 11:02

Bedankt voor de snelle reactie Dirk.
Als antwoord op uw vraag:ik wil javascript

#4 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1043 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 30 maart 2014 - 13:16

Bericht bekijkenoscar.thys, op 30 maart 2014 - 11:02, zei:

Als antwoord op uw vraag:ik wil javascript

Je accolades staan verkeerd, waarschijnlijk omdat je een onderdeel van de if ... else if  ladder die je bouwt een dangling else bevatte en je daarom ergens op een foute plaats een sluitende accolade hebt toegevoegd.
Ik zou je aanraden de echte voorwaarden in 1 conditie op te nemen: bijvoorbeeld (choice1 === rock &&  choice2 === paper), dan krijg je een eenvoudiger if else if ladder.
Zie bijvoorbeeld PapierSchaarSteen, waar ik wat alerts bijgezet heb om de correctheid van de  functie compare te testen.

C Code:

	var compare = function (choice1, choice2) {

	var result = choice1 + " vs " + choice2 + " : ";

	if (choice1 === choice2 && (choice1 === rock || choice1 === paper || choice1 === scissors)) result += tie;
	else if (choice1 === rock && choice2 === scissors) result += rockwins;
	else if (choice1 === rock && choice2 === paper) result += paperwins;
	else if (choice1 === paper && choice2 === rock) result += paperwins;
	else if (choice1 === paper && choice2 === scissors) result += scissorswin;
	else if (choice1 === scissors && choice2 === paper) result += scissorswin;
	else if (choice1 === scissors && choice2 === rock) result += rockwins;
	else result += "Does not compute";

	return result;
};



Als je dat werkend hebt gekregen, kan je de code best nog oppoetsen en refactoren.

#5 oscar.thys

oscar.thys

    Senior Developer

  • Leden
  • PipPipPip
  • 103 berichten
    Laatst bezocht 13 mei 2015 10:18

Geplaatst op 03 april 2014 - 20:01

Dirk ik heb hier op zitten zoeken en zie duidelijk dat UW programma werkt,zelfs al is er na bepaalde variabelen geen puntcomma zoals:var wins ="wins"(zonder puntcomma)var tie ="The result is a tie!"(zonder puntcomma)var result = choice1 + "vs" + choice2 +":"(maar wederom zonder puntcomma) var oops="oops"(zonder puntcomma).

Dan is er op de laatse regel na alert(compare(oops, scissors)); een};(dus een sluithaakje en een puntcomma)vanwaar het sluithaakje zonder het openingshaakje?
Moet ik dit beschouwen als zetduivelfouten of is dit bewust gedaan?

Ik heb  oplossing via copy-paste geprobeert en kreeg een syntac.fout
Dan heb ik naar mijn gedacht over de variabelen de puntcomma's geplaatst en kreeg dezelfde foutmelding.

Hoewel het bij u WEL werkt

#6 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1043 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 03 april 2014 - 21:18

Bericht bekijkenoscar.thys, op 03 april 2014 - 20:01, zei:

Moet ik dit beschouwen als zetduivelfouten

Weet niet wat er precies is misgelopen, maar blijkbaar heb ik een foute link geplaatst (klad versie).
In de originele link ontbraken er enkele puntkomma's.
De closing bracket te veel zie ik echter niet?
Ik heb de link in mijn vorige post aangepast

#7 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1043 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 03 april 2014 - 21:38

Dit is de volledige (js) code.
Code:
			var rock = "rock";
			var scissors = "scissors";
			var paper = "paper";

			var computerChoice = Math.random();
			if (computerChoice < 0.34) {
				computerChoice = rock;
			} else if (computerChoice <= 0.67) {
				computerChoice = paper;
			} else {
				computerChoice = scissors;
			}

			var wins = " wins";
			var tie = "The result is a tie!";
			var rockwins = rock + wins;
			var scissorswin = scissors + wins;
			var paperwins = paper + wins;
			var compare = function(choice1, choice2) {
				var result = choice1 + " vs " + choice2 + " : ";
				if (choice1 === choice2 && (choice1 === rock || choice1 === paper || choice1 === scissors))
					result += tie;
				else if (choice1 === rock && choice2 === scissors)
					result += rockwins;
				else if (choice1 === rock && choice2 === paper)
					result += paperwins;
				else if (choice1 === paper && choice2 === rock)
					result += paperwins;
				else if (choice1 === paper && choice2 === scissors)
					result += scissorswin;
				else if (choice1 === scissors && choice2 === paper)
					result += scissorswin;
				else if (choice1 === scissors && choice2 === rock)
					result += rockwins;
				else
					result += "Does not compute";
				return result;
			};


			alert(compare(rock, paper));
			alert(compare(paper, rock));

			alert(compare(rock, scissors));
			alert(compare(scissors, rock));

			alert(compare(paper, scissors));
			alert(compare(scissors, paper));


			alert(compare(rock, rock));
			alert(compare(scissors, scissors));
			alert(compare(paper, paper));

			var oops = "oops";
			alert(compare(oops, oops));

			alert(compare(rock, oops));
			alert(compare(paper, oops));
			alert(compare(scissors, oops));

			alert(compare(oops, rock));
			alert(compare(oops, paper));
			alert(compare(oops, scissors));



#8 oscar.thys

oscar.thys

    Senior Developer

  • Leden
  • PipPipPip
  • 103 berichten
    Laatst bezocht 13 mei 2015 10:18

Geplaatst op 04 april 2014 - 18:32

Bedankt Dirk, alles werkt perfect

#9 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1043 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 07 april 2014 - 12:51

Dat het ook werkt met de ontbrekende punt-komma's is een (vervelende) eigenschap van javascript:
Automatic Semicolon Insertion

M.a.w. ook met de ontbrekende punt-komma's was het eigenlijk syntactisch geldig én correct.
Maar het is een eigenschap waar we niet echt gebruik van willen maken.

#10 oscar.thys

oscar.thys

    Senior Developer

  • Leden
  • PipPipPip
  • 103 berichten
    Laatst bezocht 13 mei 2015 10:18

Geplaatst op 10 april 2014 - 13:55

Ok Dirk bedankt,heb ook de linkwebsite gelezen ;-)

#11 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1043 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 12 april 2014 - 10:44

Bericht bekijkenoscar.thys, op 10 april 2014 - 13:55, zei:

heb ook de linkwebsite gelezen ;-)
Hm, is dat ironie?

#12 oscar.thys

oscar.thys

    Senior Developer

  • Leden
  • PipPipPip
  • 103 berichten
    Laatst bezocht 13 mei 2015 10:18

Geplaatst op 12 april 2014 - 20:03

Nee Dirk dat is het zeker niet;ik vind dat wanneer u uw tijd in mijn probleem steekt het niet méér dan normaal is dat ik alles van u dien te onderzoeken,want u geeft mij ook de antwoorden;voila.

#13 Dirk Andries

Dirk Andries

    Guru Developer

  • Leden
  • PipPipPipPipPipPip
  • 1043 berichten
    Laatst bezocht
  • LocatieGent

Geplaatst op 13 april 2014 - 17:24

Bericht bekijkenDirk Andries, op 12 april 2014 - 10:44, zei:

Hm, is dat ironie?

Bericht bekijkenoscar.thys, op 12 april 2014 - 20:03, zei:

Nee Dirk dat is het zeker niet;ik vind dat wanneer u uw tijd in mijn probleem steekt het niet méér dan normaal is dat ik alles van u dien te onderzoeken,want u geeft mij ook de antwoorden;voila.
Héhé, ik verwachtte niet echt een antwoord hoor.
Er ontbrak gewoon een smiley (knipoog) bij mijn vraag. :D





Ook met taq Solved voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)