ค้นหาเว็บไซต์

วนซ้ำใน PowerShell | ประเภทของลูปใน PowerShell พร้อมสิทธิประโยชน์


ข้อมูลเบื้องต้นเกี่ยวกับลูปใน PowerShell

เราจะต้องมีการวนซ้ำเสมอหากเรามีงานที่ต้องทำซ้ำๆ ในวง เราจะรันโค้ดหรือคำสั่งใดๆ บนพื้นฐานที่ซ้ำๆ ตัวอย่างที่แท้จริงอย่างหนึ่ง สมมติว่าในโรงเรียนมีนักเรียน 20,000 คน และด้วยเหตุผลบางประการ มหาวิทยาลัยจึงตัดสินใจให้คะแนนเพิ่มเติม 5 คะแนนสำหรับการสอบให้กับนักเรียนทุกคน มหาวิทยาลัยจึงตัดสินใจให้คะแนน 5 คะแนนนี้แก่นักศึกษาทุกคน ยกเว้นนักศึกษาที่เข้าเรียนน้อยกว่า 100 วัน ตอนนี้คุณแค่คิดว่าเจ้าหน้าที่จะทำอย่างไร พวกเขาจะต้องตรวจสอบคะแนนและการเข้าเรียนของนักเรียนทุกคนในปีนั้น แต่สิ่งเดียวกันด้วยความช่วยเหลือของ Any loop ก็สามารถทำได้ง่ายมาก โดยการสร้างอาร์เรย์ของนักเรียนพร้อมคะแนนและวันที่เข้าเรียน ด้วยการใช้ลูปเราสามารถประหยัดความพยายามพิเศษได้ ให้เราเข้าใจลูปใน PowerShell โดยละเอียด

ประเภทของลูปใน PowerShell

มีหลายวิธีในการรันลูปใน PowerShell แต่จะขึ้นอยู่กับความต้องการและความเป็นไปได้ของโปรแกรมของคุณเสมอ ตัวอย่างเช่น หากคุณต้องการดำเนินการอย่างน้อยหนึ่งครั้งสำหรับอาร์เรย์ใดๆ เกินกว่าที่เราควรใช้ do- While loop อย่างอื่นก็มี for loop และสำหรับแต่ละคนที่ดี.

ประเภทและตัวอย่างมีดังต่อไปนี้:

1. ในขณะที่

ในขณะที่คำสั่งรับเงื่อนไขเป็นอาร์กิวเมนต์และการดำเนินการของคำสั่งภายใน while loop นั้นขึ้นอยู่กับเงื่อนไข นั่นหมายความว่าหากเงื่อนไขสำเร็จ คำสั่งนั้นก็จะดำเนินการคำสั่งอื่นไม่สำเร็จ

ไวยากรณ์:

while(condition)
{
Statement 1
Statement 2
….
}

ตัวอย่าง:

$j = 0
while($j -lt 10)
{
Write-Output $j
$j++ }

ด้านล่างเป็นหน้าจอสำหรับการเรียกใช้โค้ดด้านบน

2. ทำในขณะที่

Do while คล้ายกับ while loop ความแตกต่างเพียงอย่างเดียวคือจะดำเนินการอย่างน้อยหนึ่งครั้ง นั่นหมายความว่าจะดำเนินการ do a block เป็นครั้งแรก และในขณะที่ block หากเงื่อนไขเป็นจริง ในไวยากรณ์ด้านล่างให้ทำการบล็อกดำเนินการเป็นครั้งแรกอย่างแน่นอน

  • ทำ: บล็อกนี้ดำเนินการเป็นครั้งแรกและครั้งเดียวเมื่อการดำเนินการเริ่มต้น
  • ในขณะที่: การดำเนินการของคำสั่ง 1 และคำสั่ง 2 ทั้งหมดขึ้นอยู่กับความสำเร็จของเงื่อนไข

ไวยากรณ์:

Do
{
Statement 1
Statement 2
….}while(condition){
Statement 3
Statement 4
…..
}

ตัวอย่าง #1:

$j = 0
do
{
Write-Output $j  // this block will execute first time
$j++
}while($j -lt 10)

ตัวอย่าง #2:

ในตัวอย่างนี้ do block จะดำเนินการเป็นครั้งแรกแม้ว่าเงื่อนไขจะไม่เป็นจริงก็ตาม

$j = 0
do
{
Write-Output $j
$j--
}while($j -gt 0)

หน้าจอสำหรับทั้งสองโปรแกรมแสดงอยู่ด้านล่าง

3. ทำจนกระทั่ง

Do until แตกต่างจาก do while เล็กน้อย โดย do until การดำเนินการจะดำเนินต่อไปจนกระทั่งส่งกลับผลลัพธ์เชิงลบโดย “จนถึงบล็อก” มีสองสิ่งสำคัญที่นี่

  • ทำ: บล็อกนี้จะดำเนินการต่อไปจนกว่าเงื่อนไขการบล็อกจะล้มเหลว ซึ่งหมายความว่าจนกว่าบล็อกจะส่งกลับค่าลบ
  • จนถึง: ทำคำสั่งบล็อก 1 และคำสั่ง 2 ดำเนินการจนกว่าเงื่อนไขจะส่งกลับผลลัพธ์ที่เป็นลบ

ไวยากรณ์:

do
{
Statement 1
Statement 2
….
}until(condition)

ตัวอย่าง:

$i = 0
do
{
Write-Output $i
$i++
}until($i -ge 5) //keep checking condition

ในบล็อก “do until” เราจะเห็นว่าการดำเนินการของ do block จะดำเนินต่อไปจนกว่าเงื่อนไข “จนถึงบล็อก” จะส่งกลับค่าบวก

ด้านล่างเป็นหน้าจอสำหรับการเรียกใช้โค้ดด้านบน

4. สำหรับ

สำหรับคำสั่งให้รันรายการคำสั่งเป็นศูนย์หรือมากกว่านั้นตามการตั้งค่าเริ่มต้น ในไวยากรณ์ด้านล่างของ for loop มีสามส่วนที่สำคัญ

  • ส่วนการเริ่มต้น: ในส่วนนี้ จะกำหนดค่าเริ่มต้นให้กับตัวแปรใดๆ ส่วนนี้จะทำงานหนึ่งครั้งเป็นครั้งแรก
  • เงื่อนไข: ในส่วนเงื่อนไข เราจะเขียนเงื่อนไขของเราว่าลูปใดจะทำงาน ซึ่งหมายความว่าการดำเนินการของบล็อกคำสั่งจะขึ้นอยู่กับความสำเร็จของส่วนของเงื่อนไขเสมอ หากเงื่อนไขเป็นจริง บล็อกคำสั่งจะดำเนินการอย่างอื่นไม่ .
  • การดำเนินการ: ในบล็อกนี้ เราสามารถเพิ่ม ลด หรือเปลี่ยนแปลงค่าของการเริ่มต้นตัวแปรหรือสิ่งใด ๆ ตามความต้องการของเรา

ไวยากรณ์:

for($initialisation; condition; operation)
{
Statement 1
Statement 2
….
}

ตัวอย่าง #1:

for($i = 0; $i -lt 3; $i++)
{
Write-Output $i
}

หน้าจอเอาต์พุตของโค้ดด้านบน

หลายครั้งที่ for loop หนึ่งครั้งไม่เพียงพอที่จะตอบสนองความต้องการของเรา ดังนั้นเราจึงสามารถใช้ Nested for loops ได้ เราควรพยายามหลีกเลี่ยงการซ้อนลูปเนื่องจากความซับซ้อนของเวลาอาจสูงมากหากไม่ได้รับการจัดการอย่างเหมาะสม ด้านล่างนี้เป็นตัวอย่างของการซ้อน for loop

ตัวอย่าง #2:

for($j = 0; $j -lt 3; $j++)
{
$line = ''for($j = 0; $j -lt 3; $j++)
{
$line += $j.ToString() + $j.ToString() + '  '
}
Write-Output $line
}

เอาต์พุต: 00 11 22

5. สำหรับแต่ละ

“Foreach” รันบล็อกคำสั่งติดต่อกันจนถึงรายการสุดท้ายของอาร์เรย์ สิ่งที่ดีเกี่ยวกับคำสั่ง forEach คือ เราไม่จำเป็นต้องเขียนโค้ดแยกใดๆ เพื่อแยกอาร์เรย์ของรายการ โดยทั่วไป "foreach" เป็นเวอร์ชันที่ได้รับการปรับปรุงประสิทธิภาพของลูป "for" ซึ่งให้รายการภายในของอาร์เรย์โดยไม่ต้องเขียนโปรแกรมใดๆ ที่นี่ เพียงตรวจสอบรายการในอาร์เรย์ที่เรากำลังเรียกใช้ลูป "foreach" หากมีรายการใดอยู่ที่นั่น จะดำเนินการบล็อกคำสั่ง 1 และคำสั่ง 2

ไวยากรณ์:

foreach($arrayItems)
{
Statement 1
Statement 2
…..
}

ตัวอย่าง:

$numbers = 23,21,22,78
foreach($number in $numbers)
{
“$number is now =“ +$number
}

หน้าจอด้านล่างแสดงการดำเนินการด้านบน

ประโยชน์ของลูปใน PowerShell

ประโยชน์ที่ใหญ่ที่สุดของการใช้ลูปคือ ช่วยลดการทำงานด้วยตนเองมากเกินไป และยังควบคุมข้อมูลขนาดใหญ่สำหรับกิจกรรมประเภทเดียวกันได้อีกด้วย สมมติว่าฉันต้องการให้คุณพิมพ์ 1 ถึง 1000000 และฉันบอกคุณว่าคุณสามารถเพิ่ม 1 ให้กับทุกๆ จำนวนที่หารด้วย 2 ลงตัว ซึ่งเป็นจำนวนคู่ ถ้าคุณเริ่มพิมพ์ทีละตัวและพยายามบวก 1 เข้ากับเลขคู่ทุกตัว มันจะใช้เวลานานเกินไป ดังนั้น วิธีที่ดีกว่าและง่ายกว่าที่คุณแนะนำคือการทำซ้ำขั้นตอนนี้โดยการเพิ่มหนึ่งเข้าไปในตัวเลขจนกระทั่งเราถึง 1000,000 ประโยชน์ที่ใหญ่ที่สุดที่เราได้รับจากการวนซ้ำคือเราใช้โค้ดชิ้นเดียวกันซ้ำ เราไม่จำเป็นต้องเขียน รหัสเดียวกันสำหรับข้อมูลมากมาย มันจะรันโค้ดโดยอัตโนมัติจนจบ

ด้านล่างนี้คือสิทธิประโยชน์บางประการ

  • เพิ่มความสามารถในการนำโค้ดกลับมาใช้ใหม่ได้ ซึ่งทำให้โค้ดมีขนาดเล็กลง
  • การคำนวณข้อมูลขนาดใหญ่ที่รวดเร็วยิ่งขึ้น ช่วยประหยัดแรงงานคนได้มาก
  • ความซ้ำซ้อนของโค้ดมีน้อยลง

ตัวอย่างที่มีประโยชน์

คำถาม: พิมพ์ไม่เกิน 1,000

Without loop,
Write-Output 1;
Write-Output 2;
Write-Output 3;
Write-Output 4;
…so on
Till 100
With loop,
$x=1..100
foreach($y in $x){
Write-Output $y;
}

บทความที่เกี่ยวข้อง