Danny wrote:
> Hi list,

Hello,

> Hope this is not too simple or a stupid question:
> 
> I have a slight problem with a loop. It is a simple numbers guessing game. It
> works fine, but when I run this script, it gives me "Too low" immediately 
> after
> the prompt. What should I do to get the last "else" statement displayed first?
> 
> Following is the code:
> 
> #!/usr/bin/perl -w
> 
> $upper = 20 ;
> $lower = 1 ;
> $target = 11 ;
> 
> while ( )
>   {
>     if ( $guess > $target )
>       {
>         print "Too high\n" ;
>         $guess = <STDIN> ;
>       }
>     elsif ( $guess < $target )
>       {
>         print "Too low\n" ;
>         $guess = <STDIN> ;
>       }
>     elsif ( $guess == $target )
>       {
>         print "You guessed right\n" ;
>         exit ;
>       }
>     else
>       {
>         print "Please choose a number between ${lower} and ${upper}\n" ;
>         $guess = <STDIN> ;
>       }
>     }

If you want a simple loop:

#!/usr/bin/perl
use warnings;
use strict;

my $upper  = 20;
my $lower  = 1;
my $target = 11;

{   print "Please choose a number between $lower and $upper\n";
    chomp( my $guess = <STDIN> );

    $guess > $target and print "Too high\n" and redo;

    $guess < $target and print "Too low\n" and redo;

    print "You guessed right\n" and exit;
    }

__END__


:-)

John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to