Thread Perl Variablen Problem (6 answers)
Opened by Fabian at 2014-05-14 18:04

Linuxer
 2014-05-14 18:54
#175543 #175543
User since
2006-01-27
3875 Artikel
HausmeisterIn

user image
Ich habe mal den Code überarbeitet und noch ein paar Unsauberkeiten beseitigt und etwas vereinfacht. Bei Unklarheiten einfach nachfragen.

Im Detail:
- Zufallswert mit int() zum Integer gemacht
- $variable innerhalb der Schleife braucht kein eigenes my
- print-Ausgaben überarbeitet; Ausgabe-Strings über zwei Zeilen entfernt; Umbrüche eingebaut.
- größer/kleiner-Ausgabe zusammengelegt

Code (perl): (dl )
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
28
29
30
31
32
33
34
35
36
37
38
39
use strict;
use warnings;

#Zahlenraten

my $toguess = int rand(100);            #Zufallsvariable; integer 0-99

my $zaehler = 1;
my $variable = -1;          # kein undef; klarer Wert verhindert Warnung

print "Bitte geben Sie eine ganze Zahl zwischen 0 und 99 ein: ";
while ($toguess != $variable) {

    # kein extra "my" hier; wir nutzen das von oberhalb der Schleife
    # damit wird hier die gesetzte -1 von oben überschrieben
    # Zeilenumbruch mit chomp() aus der Eingabe entfernen
    chomp( $variable = <STDIN> );

    # Entweder die Eingabe war falsch
    if  ( $variable < 0 || $variable != int($variable) ) {
        print "Ungültige Eingabe.\n";
    }
    # ODER sie war genau richtig
    elsif ( $toguess == $variable ) {
        print "Sie haben richtig geraten, zu erraten war: $toguess\n",
              "Sie benötigten $zaehler Versuche.\n";
    }
    # ODER sie war zu gross ODER zu klein
    else {
        # der einzige Unterschied dieser Ausgabe liegt in der Relation
        # also bestimme Relation und gebe dann den Text entsprechend aus
        my $relation = 'kleiner';
        $relation    = 'größer'      if $toguess > $variable;

        print "Die gesuchte Zahl ist $relation.\n",
              "Bitte geben Sie eine neue Zahl ein: ";
        $zaehler++;
    }
}


edit: Perldoc:perlfunc chomp eingebaut.
Last edited: 2014-05-15 17:58:02 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Perl Variablen Problem