Leser: 25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use strict; my $zufallszahl; my $eingabe; my $a; sub subzahlen(){ my $rand = int (1+rand(6)); print $rand; return $rand; } $zufallszahl = subzahlen; print $zufallszahl; print "Zufallszahl eingeben!"; while($zufallszahl != ($eingabe = <STDIN>)) { print "Zufallszahl falsch, bitte erneut eingeben!"; if($zufallszahl<$eingabe) { print "Zu klein"; } if($zufallszahl>$eingabe) { print "Zu groß"; } }
1 2 3 4 5 6 7 8 9 10 11
while(my $eingabe = <STDIN>) { chomp $eingabe; last if $eingabe == $zufallszahl; print "Zufallszahl falsch, bitte erneut eingeben!"; if ($zufallszahl < $eingabe) { print "Zu klein"; } if ($zufallszahl > $eingabe) { print "Zu groß"; } }
1 2 3
while($zufallszahl != ($eingabe = <STDIN>)) { chomp $eingabe; print "Zufallszahl falsch, bitte erneut eingeben!";
2010-02-11T12:32:48 pqchomp liefert aber nicht die gechompte variable, sondern die anzahl der zeichen, die gechompt wurden.
also wird der vergleich falsch.
1 2 3 4 5 6 7 8 9 10
#!/usr/bin/perl use warnings; use strict; my $wert = 23; chomp(my $vergleich = <STDIN>); print "GLEICH\n" if $wert == $vergleich;
1 2 3 4 5 6 7 8 9 10 11
while(chomp(my $eingabe = <STDIN>)) { print $eingabe; # liefert mir die Eingabe last if $eingabe == $zufallszahl; print "Zufallszahl falsch, bitte erneut eingeben!"; if ($zufallszahl < $eingabe) { print "Zu klein"; } if ($zufallszahl > $eingabe) { print "Zu groß"; } }
2010-02-11T12:37:45 haviwas verstehe ich falsch?
2010-02-11T12:41:02 pq2010-02-11T12:37:45 haviwas verstehe ich falsch?
du postest hier anderen code als vorhin.
guck dir die beiden codes mal genau an und vergleiche.
was verstehst du an meiner aussage "chomp liefert nicht die gechompte variable" nicht?
du hast zuerst folgendes gepostet:
while($zufallszahl != chomp($eingabe = <STDIN>)) {
das wird *nicht* wie gewünscht funktionieren, da dort in der regel eine zahl (1) zurückgeliefert wird und mit $zufallszahl verglichen.
in deinem neuen post benutzt du komplett anderen code. da machst du den vergleich nämlich erst später. dort hast du dich meinem code bedient.
was verstehe *ich* falsch?
1 2 3 4 5 6 7 8 9 10 11
my $zufallszahl = 12; while($zufallszahl != chomp($eingabe = <STDIN>)) { print $eingabe; # liefert mir auch die Eingabe... print "Zufallszahl falsch, bitte erneut eingeben!"; if($zufallszahl<$eingabe) { print "Zu klein"; } if($zufallszahl>$eingabe) { print "Zu groß"; } }
1
2
3
4
5
6
7
perl -wle'
my $zufallszahl = 23;
if ($zufallszahl != chomp($eingabe = <STDIN>)) {
print "zufallszahl $zufallszahl ungleich $eingabe";
}'
23
zufallszahl 23 ungleich 23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#!/usr/bin/perl -w use strict; my $zufallszahl; my $eingabe; sub subzahlen(){ my $rand = int (1+rand(6)); print $rand; return $rand; } $zufallszahl = subzahlen; print $zufallszahl; print "Zufallszahl eingeben!"; while(chomp ($eingabe = <STDIN>)) { last if($eingabe == $zufallszahl); if($zufallszahl<$eingabe) { print "Zu klein"; } if($zufallszahl>$eingabe) { print "Zu grofl"; } }
55Zufallszahl eingeben!5