循环结构

循环结构用来重复执行一段代码。

while 循环

语法:

while(条件)
{
    语句
}
# 计算1到100的和
$sum=0
$i=1;
while($i -le 100)
{
    $sum+=$i
    $i++
}
$sum

do while 循环

语法:

do
{
    语句
}while(条件)
# 计算1到100的和
$sum=0
$i=1;
do
{
    $sum+=$i
    $i++
}while($i -le 100)
$sum

for 循环

语法:

for(初始语句;条件;循环语句)
{
    语句
}
# 计算1到100的和
$sum=0
for($i=1;$i -le 100;$i++)
{
    $sum+=$i
}
$sum

foreach 循环

foreach循环用于枚举集合中的元素。

$sum = 0
foreach($item in 1..100)
{
    $sum += $item
}
$sum

switch 循环

switch不仅仅是判断,当变量是集合时,还可以是循环。

语法

switch(集合变量)
{
    条件1 语句1
    条件2 语句2
    条件n 语句n
    default 语句n+1
}
$sum = 0
switch(1..100)
{
    default {$sum += $_}
}
$sum

在switch中使用判断才能体现出他的强大。

switch(1..10)
{
    {$_ % 2 -eq 0}{"$($_)是偶数"}
    {$_ % 2 -eq 1} {"$($_)是奇数"}
}

各种循环的特点

嵌套循环

循环中还可以有循环,即嵌套循环。

任意类型的循环都可以互相嵌套。

一般,循环嵌套不建议超过3层。

打印乘法表

for($i=1;$i -lt 10;$i++)
{
    for($j=1;$j -le $i;$j++)
    {
        Write-Host ("{0}*{1}={2}`t" -f $j,$i,($j*$i))  -NoNewline
    }
    Write-Host ""
}

跳出循环

在循环中,可以使用break跳出循环。 break只能够跳出本层循环。

# 计算1到100的和
$sum = 0
$i = 1;
while($true)
{
    if($i -gt 100)
    {
        break
    }
    $sum+=$i
    $i++;
}
$sum

跳出本此循环

在循环中,可以使用continue跳出本此循环。 continue只能跳出本层循环的本此循环。

$sum = 0
$i = 1;
for($i=1;i -le 100;i++)
{
    if($i %2 -eq 0)
    {
        continue;
    }
    $sum+=$i
}
$sum

跳出本此循环后,for循环中循环语句i++会继续执行,而不会被跳过。