Perl語言學習(四)Perl控制結構
四、Perl控制結構
1、if控制結構
控制結構是邏輯實現的基石
三種基本的控制結構
-
if結構是程式最基本的控制結構
-
語法:
if(條件) 執行語句;
if(條件) { 執行語句一; 執行語句二;}
執行語句 if(條件)
if(條件一) {執行語句;} elsif(條件二) {執行語句;} else{......}
書寫格式:儘量使用左邊這種格式
-
unless結構
unless結構是if結構的反義結構,用法同if類似
unless在條件為假時,執行相應的語句
unless(條件) 執行語句;
-
2、foreach 控制結構
-
for控制結構
當演算法的操作物件是一個陣列或雜湊時,利用控制結構來讀取陣列或雜湊中的元素
語法:for(初始化式; 條件; 表示式) { 執行語句;}
執行過程:執行初始化式,判斷條件,表示式求值,重複第二步和第三步,直到第二步的表示式為假
my @array = (1,2,3..50,60,43,32,82..99); my $length_array = @array; for(my $i=0;$i<$length_array;$i++) { if($array[$i]>60) { printf"item $i, value is:$array[$i]\n"; } }
-
for迴圈中斷、跳出的控制,使用next和last
next:跳至本次迴圈的結束位置,開始下一次迴圈
last:跳至迴圈的最後位置,結束迴圈
-
foreach控制結構
for迴圈結構的一種變體
foreach迴圈逐個遍歷列表中的值,依次迭代迴圈過程
語法:foreach 變數(列表){ 執行語句; }
my @array = (1,2,3..50,55,60,43,82..99); foreach my $item (@array) { if($item > 60) { printf("$item\n"); } $item = 150; } printf"wtire's result\n"; foreach my $item (@array) { printf("$item\n"); }
-
預設變數的使用
- $_會取得perl中的預設變數
foreach取得元素並非按照先後順序,而是隨機取的
-
可以使用sort來對元素進行排序然後取出
sort{$a <=> $b} @array; ##按照從小到大進行排序,array都是數字
sort{$a cmp $b} @array; ##按照從小到大進行排序,array都是字母
next, last來對迴圈進行特定控制
在perl中,對於for和foreach,一般大多使用foreach
3、其他控制結構
-
while控制結構
語法:while(條件) {執行語句;}
條件返回值為真時,執行語句,否則退出迴圈
-
一般有三種方法控制迴圈:
計數控制:迴圈執行的次數是預先設定好的,依據所記錄的次數對迴圈進行控制
特殊值控制:通過對某特殊值進行判斷,來決定程式是否執行
使用者互動式控制:通過顯性詢問使用者的意見來判斷是否執行程式
使用last跳出當前迴圈
-
until控制結構
until結構和while結構相反,當條件返回值為假時才執行迴圈內的程式碼
語法:until(條件) { 執行語句;}
-
until和continue一起使用,構建完備邏輯
- 語法:until(條件) {執行語句;} continue {執行語句;}
until (-e "test.txt") { printf"begin to sleep\n"; sleep(1); } continue { printf"waiting for update\n"; } ```
-
switch控制結構
Perl的原始碼中並不支援switch結構
對條件進行判斷,根據選擇值進行相應的程式碼
語法:switch(條件) case 條件值1: 執行語句; case 條件值2: 執行語句; default: 執行語句
相關文章
- perl語言入門
- Perl常用語法
- perl
- Perl語法的基本規則
- Perl學習筆記(五)——關聯陣列筆記陣列
- perl的logwrapperAPP
- Perl&LWP
- perl指令碼指令碼
- 使用perl cpan
- perl 安裝
- go語言學習-結構體Go結構體
- Perl只比Python老了兩年卻被認為過時語言?Python
- perl+xml+iniXML
- Perl Catalyst 倒出 ExcelExcel
- rust學習四、控制語句Rust
- perl分析apache日誌Apache
- perl替換特殊字元字元
- perl在apache上部署Apache
- GO語言————5.1 控制結構之if-else結構Go
- TIOBE 4 月程式語言排行榜:Python 持續升溫,Perl 苦苦掙扎Python
- 還記得這門古老的程式語言麼,送你一份perl書單!
- Solidity語言學習筆記————15、結構體StructSolid筆記結構體Struct
- 兩個將來可能很厲害的perl 專案:perl雲端計算及跟google app engine的結合GoAPP
- [譯][Perl 6] 5to6-perlfunc
- [譯][Perl 6] 5to6-nutshell
- Perl讀寫檔案&字串操作字串
- PERL 5.8的反序列化
- 講 perl debug 的不錯文章
- 使用perl比較mysql的版本MySql
- 送你一份perl書單
- C語言學習筆記:結構體與指標C語言筆記結構體指標
- Go語言學習筆記 - PART7 - 結構體Go筆記結構體
- perl 裡邊的 函式指標函式指標
- Perl IO:隨機讀寫檔案隨機
- 使用Perl和WWW::Mechanize庫編寫
- bash shell 無法使用 perl 正則
- Go語言流程控制之迴圈結構篇Go
- 記錄一下perl DBI 的selectall_hashref返回的結構到底怎樣的