2016年10月22日 星期六

迴圈


1. For 迴圈 
若於程式設計階段已知要執行的次數 則可使用for敘述
for 固定變量,限定數值範圍 (適用數值變量)
for start,end,step start,end,step都必須是數字

#!/bin/bash
for ((i=0; i<10; i++))
do
echo $i;
done

#!/bin/bash
Distro=('openSUSE' 'Red hat' 'Debian' 'Ubuntu' 'Fedora')
for ((i=0;i<${#Distro[@]};i++))
do
  echo "Linux Distro[$i]=>"${Distro[$i]}
done

#!/usr/bin/perl
@array = ('openSUSE', 'Red hat', 'Debian', 'Ubuntu', 'Fedora');
$length = @array;
for ($i=0;$i<$length;$i++)
{
print "$array[$i]\n";
}

 2. While迴圈
若未知執行次數的話 則應使用while或repeat
while迴圈 稱為前測試迴圈
while 限定條件
while(xx) xx可以是任何運算式
也就是說 先測試條件運算式為真時 繼續執行迴圈 也有可能不執行迴圈內容就直接離開

#!/bin/bash
i=0
while [ $i -lt 10 ];
do
   echo $i;
   ((i++))
done

#!/bin/bash
Distro=('openSUSE' 'Red hat' 'Debian' 'Ubuntu' 'Fedora')
i=0
while [ $i -lt ${#Distro[@]} ]
do
  echo "Linux Distro[$i]=>"${Distro[$i]}
  ((i++))
done

#!/usr/bin/perl
@array = ('openSUSE', 'Red hat', 'Debian', 'Ubuntu', 'Fedora');
$length = @array;
$i=0;
while ($i<$length)
{
print "$array[$i]\n";
$i++
}


3. do while迴圈
repeat   稱為後測試迴圈
也就是說 先執行迴圈 待條件運算式為真時再離開迴圈 也就是 迴圈內容至少執行一次


4. foreach迴圈 
foreach提供陣列很便利的輸出方式,
foreach 語法結構說明:
 
  結構一:
         每跑一圈foreach會把陣列($array)的陣列值
        (array value)存放到 $value 中。
 
         foreach ( $array as $value )
                     ... 執行程式碼 ...
  結構二:
        與結構一的意思一樣,但多增加了把陣列的所引
      (array key)'會同時將array key 取出並存放於
       $key 中。
   
       foreach ( $array as $key => $value )
                  ... 執行程式碼 ...

#!/usr/bin/php
<?php
$dataArray=array('openSUSE', 'Red hat', 'Debian', 'Ubuntu', 'Fedora');
foreach($dataArray as $daKey => $daValue)
{
 echo "\$dataArray[$daKey]=>".$daValue."\n";
}
?>

#!/usr/bin/perl
@array = ('openSUSE', 'Red hat', 'Debian', 'Ubuntu', 'Fedora');
foreach my $i (@array)
{
  print "$i\n";
}