[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Un while() de perl



$ cat decimals.pl
#!/usr/bin/perl
$num = 0.8;
while ($num < 1.1) {
        print ("\$num vale $num\n");
        $num = $num + 0.1;
        print ("y después $num\n\n");
}

         Trivial, ¿verdad?

$ ./decimals.pl
$num vale 0.8
y después 0.9

$num vale 0.9
y después 1

$num vale 1
y después 1.1

         Todo OK.

$ cat decimals2.pl 
#!/usr/bin/perl
$num = 0.7; #        <---- Esta línea cambia
while ($num < 1.1) {
        print ("\$num vale $num\n");
        $num = $num + 0.1;
        print ("y después $num\n\n");
}

$ ./decimals2.pl 
$num vale 0.7
y después 0.8

$num vale 0.8
y después 0.9

$num vale 0.9
y después 1

$num vale 1
y después 1.1

$num vale 1.1
y después 1.2

         Oh vaya! Si inicializamos $num a 0.7 resulta que cuando llega a
     1.1, la condición del while sigue siendo cierta!. perl_5.005.03-6.


-- 
 Just do it.

David Serrano <ctv.es@fserrano>                Linux 2.2.15 - Reg. User #87069
Hi! I'm a .signature virus!  Copy me into your ~/.signature to help me spread!

Attachment: pgpPYbEiw0qyd.pgp
Description: PGP signature


Reply to: