Chinaunix首页 | 论坛 | 博客
  • 博客访问: 547514
  • 博文数量: 201
  • 博客积分: 7734
  • 博客等级: 少将
  • 技术积分: 1994
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 19:18
文章分类

全部博文(201)

文章存档

2011年(28)

2010年(173)

分类:

2010-08-15 13:24:32

while 控制结构:
perl和大部分用来实现算法的语言一样,也有好几种循环结构,在while循环中,只要条件待续为
真,就会不断执行块里的程序代码:
 

$count = 0;
while ($count <20) {
    $count += 2;
### eq $count = $count +2
;
    print "count is now $count\n";
}


这里的真假值与之前提到的if条件测试里的真假值定义相同。

undef值:
如果还没赋值就用到了某个标量,会有什么结果呢?答案是,不会发生什么大不了的事,也绝对不

会让程序中止运行。在首次被赋值之前,变量的初始值就是特殊的undef(未定义),它在Perl里

的意思只不过是:这里空无一物,走开,走开。如果你想把这个“空无一物”当成数字,使用,它就

会假设这是0,如果当成字符串使用,它就会假设这是空字符串。但是undef既不是数字也不是字符

串,它完全是另一种类型的标量值。

既然undef作为数字时会视为零,我们可以很容易地构成一个数值累加器,它在开始时是空的:
#累加一些奇数

 

$n = 1;
while ($n < 10) {
    $sum += $n;
    $n +=2;
#准备下一个奇数

}
print "The total was $sum.\n";


defined 函数:

“行输入”操作符有时候会返回undef。在一般状况下,它会返回一行文字,但若没有更多输

入,比如读到文件结尾(end-of-file),它就会返回undef来表示这个状况,要判断某个字符串是

undef而不是空字符串,可以使用defined函数,如果是undef,该函数返回假,否则返回真。

 

$madonna = <STDIN>;
if (defined($madonna)) {
    print "The input was $madonna";
} else {
    print "No input available!\n";
}

习题:
==================================
#!/usr/bin/perl -w

$pi = 3.141592654;
$circ = 2 * $pi * 12.5;
print "The circumference of a circle of radius 12.5 is $circ.\n";
==================================

#!/usr/bin/perl -w

$pi = 3.141592654;
print "What is the radius?";
chomp($radius = <STDIN>);
$circ = 2 * $pi * $radius;
print "The circumference of a circle of radius $radius is $circ.\n";

=====================================================================

#!/usr/bin/perl -w

$pi = 3.141592654;
print "What is the radius?";
chomp($radius = <STDIN>);
$circ = 2 * $pi * $radius;
if ($radius < 0 ) {
    $circ = 0;
}
print "The circumference of a circle of radius $radius is $circ.\n";

=====================================================================

$pi = 3.141592654;
$radius = <STDIN>;
chomp ($radius);
if ( $radius < 0 ) {
    print    "The circumference of a circle of radius $radius is 0.\n";
} else {
    $circ = 2 * $pi * $radius;
    print "The circumference of a circle of radius $radius is $circ.\n";
}

======================================================================

#!/usr/bin/perl -w

print "Enter first number: ";
chomp($one = <STDIN>);
print "Enter second number: ";
chomp($two = <STDIN>);
$result = $one * $two;
print "The result is $result.\n";

=======================================================================

print "Enter a string: ";
$str = <STDIN>;
print "Enter a number of times: ";
chomp ($num = <STDIN>);
$result = $str x $num;
print "The result is:\n$result";

13:13 2010-8-15

阅读(583) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~