日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

gawk的使用方法( 五 )


如 body 里面包括一個(gè)以上的敘述 , 必須以大括弧 { } 將這些敘述括起
來(lái) , 而各個(gè)敘述之間需以換行(newline)或分號(hào)隔開 。7.1 if 敘述if (condition) then-body [else else-body]
(p30 of
如果 condition 為真(true) , 則執(zhí)行 then-body , 否則執(zhí)行 else-body 。舉一個(gè)例子如下:if (x % 2 == 0)
print "x is even"
else
print "x is odd"7.2 while 敘述while (condition)
bodywhile 敘述做的第一件事就是測(cè)試 condition 。假如 condition 為真則
執(zhí)行 body 的敘述 。body 的敘述執(zhí)行完後 , 會(huì)再測(cè)試 condition , 假如
condition 為真 , 則 body 會(huì)再度被執(zhí)行 。這個(gè)過(guò)程會(huì)一直被重復(fù)直到
condition 不再是真 。如果 condition 第一次測(cè)試就是偽(false) , 則
body 從沒(méi)有被執(zhí)行 。下面的例子會(huì)印出每個(gè)輸入記錄(record)的前三個(gè)欄位 。gawk "{ i=1
while (i <= 3) {
print $i
i
}
}"7.3 do-while 敘述do
body
while (condition)這個(gè) do loop 執(zhí)行 body 一次 , 然後只要 condition 是真則會(huì)重復(fù)執(zhí)行 body 。
(p32 of
即使開始時(shí) condition 是偽 , body 也會(huì)被執(zhí)行一次 。下面的例子會(huì)印出每個(gè)輸入記錄十次 。gawk "{ i= 1
do {
print $0
i
} while (i <= 10)
}"7.4 for 敘述for (initialization; condition; increment)
body此敘述開始時(shí)會(huì)執(zhí)行initialization , 然後只要 condition是真 , 它
會(huì)重復(fù)執(zhí)行body與做increment。下面的例子會(huì)印出每個(gè)輸入記錄的前三個(gè)欄位 。gawk "{ for (i=1; i<=3; i)
print $i
}"7.5 break 敘述break 敘述會(huì)跳出包含它的 for、while、do-while 回圈的最內(nèi)層 。下面的例子會(huì)找出任何整數(shù)的最小除數(shù) , 它也會(huì)判斷是否為質(zhì)數(shù) 。gawk "# find smallest divisor of num
{ num=$1
for (div=2; div*div <=num; div)
if (num % div == 0)
break
if (num % div == 0)
printf "Smallest divisor of %d is %d ", num, div
else
printf "%d is prime ", num }"7.6 continue 敘述
(p34 of 46)
continue 敘述使用於 for、while、do-while 回圈內(nèi)部 , 它會(huì)跳
過(guò)回圈 body 的剩馀部分 , 使得它立刻進(jìn)行下一次回圈的執(zhí)行 。下面的例子會(huì)印出 0 至 20 的全部數(shù)字 , 但是 5 并不會(huì)被印出 。gawk "BEGIN {
for (x=0; x<=20; x) {
if (x==5)
continue
printf ("%d",x)
}
print ""
}"7.7 next 敘述、next file 敘述、exit 敘述next 敘述強(qiáng)迫 gawk 立刻停止處理目前的記錄(record)而繼續(xù)下一
個(gè)記錄 。next file 敘述類似 next 。然而 , 它強(qiáng)迫 gawk 立刻停止處理目前
的資料檔 。exit 敘述會(huì)使得 gawk 程式停止執(zhí)行而跳出 。然而 , 如果 END 出現(xiàn)
, 它會(huì)去執(zhí)行 END 的 actions 。第八章 內(nèi)建函式(Built-in Functions)內(nèi)建函式是 gawk 內(nèi)建的函式 , 可在 gawk 程式的任何地方呼叫內(nèi)建
函式 。8.1 數(shù)值方面的內(nèi)建函式int(x) 求出 x 的整數(shù)部份 , 朝向 0 的方向做舍去 。例如:int(3.9)
是 3 , int(-3.9) 是 -3 。
(p36 of 46)
sqrt(x) 求出 x 正的平方根值 。例 sqrt(4)=2
exp(x) 求出 x 的次方 。例 exp(2) 即是求 e*e。
log(x) 求出 x 的自然對(duì)數(shù) 。
sin(x) 求出 x 的 sine 值 , x 是弳度量 。
cos(x) 求出 x 的 cosine 值 , x 是弳度量 。
atan2(y,x) 求 y/x 的 arctangent 值 , 所求出的值其單位是弳度量 。
rand() 得出一個(gè)亂數(shù)值 。此亂數(shù)值平均分布在 0 和 1 之間 。這個(gè)
值不會(huì)是 0 , 也不會(huì)是 1 。
每次執(zhí)行 gawk , rand 開始產(chǎn)生數(shù)字從相同點(diǎn)或 seed 。
srand(x) 設(shè)定產(chǎn)生亂數(shù)的開始點(diǎn)或 seed 為 x 。如果在第二次你設(shè)
定相同的 seed 值 , 你將再度得到相同序列的亂數(shù)值 。
如果省略引數(shù) x , 例如 srand() , 則現(xiàn)在的日期、時(shí)間會(huì)
被當(dāng)成 seed 。這個(gè)方法可使得亂數(shù)值是真正不可預(yù)測(cè)的 。
srand 的傳回值(return value)是前次所設(shè)定的 seed 值 。8.2 字串方面的內(nèi)建函式index(in, find)

推薦閱讀