Probleem met If Else

Status
Niet open voor verdere reacties.

marcoitsme

Nieuwe gebruiker
Lid geworden
3 dec 2009
Berichten
2
Code:
print "Type F voor Fahrenheit of C for Celsius:\n";
chop($keuze = <>);
if ($keuze = "C") {
	printfahrenheit();
}
else  {printcelsius();
}
#-----------------------------------------------
sub printcelsius {
print "Typ graden fahrenheit:\n";
chop($f = <>);
$c = ($f - 32) * (5/9);
print "$f graden fahrenheit is $c graden celsius\n";
}
sub printfahrenheit {
print "Typ graden celsius:\n";
chop($c = <>);
$f = ($c * 9/5) + 32;
print "$c graden celsius is $f graden fahrenheit\n";
}

De If else vraag werkt niet, en ik kan het probleem niet vinden. kan iemand helpen?
dankje!
 
Laatst bewerkt door een moderator:
Hoi marcoitsme,

Misschien wat laat maar ik doe zelf de laatste jaren eigenlijk niets meer met Perl en had hier nog niet gekeken en je vraag nog niet eerder gezien.

Het probleem wat je met de if heb onstaat door een veel gemaakte fout in C en in programmeertalen die dezelfde syntax gebruiken zoals Perl, PHP enz.
Bij if moet een dubbele = gebruiken, dus hier if ($keuze == "C"). Als je maar is gebruikt wordt $keuze gelijk gemaakt aan "C" en omdat dit kan komt hier waar (true) uit. Je kunt je aan leren als je met een constante vergelijkt zoals hier om $keuze en "C" om te draaien, dus zo if ("C" == $keuze) nu krijg je een foutmelding omdat het niet mogelijk is om een constante van waarde te veranderen en je vindt dan de fout meteen.

Mvg,
Peter
 
Hoi marcoitsme,

Misschien wat laat maar ik doe zelf de laatste jaren eigenlijk niets meer met Perl en had hier nog niet gekeken en je vraag nog niet eerder gezien.

Het probleem wat je met de if heb onstaat door een veel gemaakte fout in C en in programmeertalen die dezelfde syntax gebruiken zoals Perl, PHP enz.
Bij if moet een dubbele = gebruiken, dus hier if ($keuze == "C"). Als je maar is gebruikt wordt $keuze gelijk gemaakt aan "C" en omdat dit kan komt hier waar (true) uit. Je kunt je aan leren als je met een constante vergelijkt zoals hier om $keuze en "C" om te draaien, dus zo if ("C" == $keuze) nu krijg je een foutmelding omdat het niet mogelijk is om een constante van waarde te veranderen en je vindt dan de fout meteen.

Mvg,
Peter

ok ik snap het nu :) dankjewel!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan