这里没有软件测试的泛泛理论,只有博主的最佳实践。
博主的研究方向为静态分析和性能测试,致力于各种测试工具的引入、评估和开发。
本博的测试文章均为作者原创,转载请务必注明出处。
小骆驼书作业十:其他控制结构
上一篇 /
下一篇 2008-07-15 16:36:06
/ 个人分类:Perl
写一支程序,让用户不断猜测范围从1到100的秘密数字,直到猜中为止。当用户猜错时,程序应该响应“too hight”或"too low"。如果用户键入quit或者exit等字样,或是键入一个空白行,程序就应该中止。当然,如果用户猜对了,程序也应该中止!
#!/usr/bin/perl -w
$target = int(1 + rand 100);
$guess = 0;
print "Start to guess, please input your answer(1-100):\n";
#until($guess == $target)
while(1)
{
chomp($guess = <STDIN>);
#if(($guess eq "quit") || ($guess eq "exit"))
if($guess =~ /^quit$|exit|^\s*$/i) #输入abcexitabc也会导致程序退出,但只有输入quit程序
{ #才会中止,归功于所用的正则表达式不同
last;
}
if($guess > $target)
{
print "Too hight.\n"
}
elsif($guess < $target)
{
print "Too low.\n"
}
else
{
print "ok. It was $target. You got it. congraulations. \n";
last;
}
}
print "Good bye!\n";
题目本身没什么可多说得,没什么难度。这一章相对于正则表达式来讲,属于非常简单的,只需要翻一下书了解即可。
复习笔记
- unless控制结构,和if正好相反,虽然unless也可以带else,但基本上很少用
- until结构,和while相反
- 表达式修饰符 print "$n is a negative num.\n" if $n<0; 即便这样写,if仍然是先执行,这样写的好处在于少打几个括号{}和(),使用这种“倒装句”的写法,可以把重点部分放到前面.
- if除了对应else,还可以配对elsif
- perl中for控制结构和foreach秘密关联,二者完全可以互换。
- last对应C的break,用来退出整个循环;next对应c的continue,用来退出本次循环
- redo会跳回当前循环块的顶端,继续本次循环
- 逻辑操作符&& ||,以及三目操作符?:和C中一样,不多说
- and or也可以表示&& ||,只不过他们的优先级被降到最低,最常见的写法如 open CHAPTER, $filename or die "can not open '$filename':$!";
相关阅读:
- 解决 perl xml getNodeValue 为空值的过程 (liangjz, 2008-4-19)
- 小骆驼书作业一:简介 (huior, 2008-6-29)
- 小骆驼书作业二:标量数据 (huior, 2008-6-30)
- 小骆驼书作业三:列表和数组 (huior, 2008-7-03)
- 小骆驼书作业四:子例程 (huior, 2008-7-04)
- perl (brighten, 2008-7-06)
- 小骆驼书作业五:输入与输出 (huior, 2008-7-07)
- 小骆驼书作业六:散列 (huior, 2008-7-07)
- 小骆驼书作业七:正则表达式 (huior, 2008-7-08)
- Perl子例程的实践 (fishy, 2008-7-09)
收藏
举报
TAG:
Perl