#!/usr/bin/perl -w
use strict;
=head1
1 condition:
false when value is 0/null string/string with "0" value/undef;
2 block:
{}; vars only take effect in the block they are defined;
3 compare operators:
<, >, ==, !=... used for numeric compare;
eq, lt, gt, le, ge, ne used for string compare;
4 condition state:
if true {} elsif {} else {};
statement if true; simple!
unless false {};
5 loop state:
while true {};
untile false {};
for (init; condition; operation) {};
"statement of $_" for [@array] | (0...10)
for (1...10) { "statement of $_" };
print for ();
print foreach (@array);
for my $var (1...10) {};
for === foreach
=cut
print "part1 condition/loop................................................. ";
my @array = qw/-1 0 1 2 3 -2 -3/;
my @positive = ();
foreach (@array) {
push @positive, ($_**2) if ($_ > 0);
}
print foreach (@positive);print " ";
@positive = ();
@positive = map { $_**2 } grep {$_ > 0} (@array);
print for (@positive); print " ";
my $test = 0;
print "test=0 " if ($test == 0);
print "test=0 " unless ($test != 0);
print "4 false conditions: 0/null string/string 0/undef ";
my $cond = 0;
print "cond=0: false " if (! $cond);
$cond = "";
print "cond="": false " if (! $cond);
$cond = "0";
print "cond="0": false " if (! $cond);
$cond = undef;
print "cond=undef: false " if (! $cond);
=head2
part2: exercise
1. caculate 1+3+5+...+99;
2. the max value of n when (1+2+..+n)<=100;
3. caculate the factorial of x, inputted by user, x<50 or alarm when x>50;
=cut
print "part2 exercise................................................. ";
my $res = 0;
for (my $i=1; $i<100; $res+=$i, $i+=2) {;}
print "1+3+5+...+99 = $res ";
$res = 0;
my $n = 0;
foreach (1...100){
$n = $_-1;
last if (($res+=$_) > 100);
}
print "res=$res, when n=$n ";
[root@china1 code]# ./perlnote3.pl
part1 condition/loop.................................................
149
149
test=0
test=0
4 false conditions: 0/null string/string 0/undef
cond=0: false
cond="": false
cond="0": false
cond=undef: false
part2 exercise.................................................
1+3+5+...+99 = 2500
res=91, when n=13
本文详细介绍了Perl语言中条件判断与循环控制的基本用法,包括if/elsif/else语句、unless语句、while循环、until循环及for循环等,并通过实例展示了如何使用这些结构进行数组操作和简单的数学计算。
2002

被折叠的 条评论
为什么被折叠?



