สุพจน์ สวัตติวงศ์ tohpus@gmail.com gamepad.pigcanfly.com Loop ใน C# สุพจน์ สวัตติวงศ์ tohpus@gmail.com gamepad.pigcanfly.com
Loop ใน C# การทำงานวนซ้ำหรือ Loop ใน C# มีด้วยกัน 3 แบบดังนี้ while do while for
while Loop เป็นการทำงานเพื่อให้ Program ทำงานซ้ำเมื่อเงื่อนไขเป็นจริง โดยจะทำไปเรื่อยๆ จนกว่าจะเป็นเท็จ while (<เงื่อนไข>) { ประโยคคำสั่ง; }
ตัวอย่างการใช้งาน while loop int a =0; while (a<5) { Console.WriteLine(a); a++; } Console.ReadLine();
จากตัวอย่างจะเห็นได้ว่า a<5 true พิมพ์ค่า a a++
do while Loop เป็นการทำงานเพื่อให้ Program ทำงานซ้ำเมื่อเงื่อนไขเป็นจริง โดยจะทำไปเรื่อยๆ จนกว่าจะเป็นเท็จ แต่ทำการตรวจสอบเงื่อนไขภายหลัง do { ประโยคคำสั่ง; } while (<เงื่อนไข>)
ตัวอย่างการใช้งาน do while loop int a = 0; do { Console.WriteLine(a); a++; } while (a<5) Console.ReadLine();
จากตัวอย่างจะเห็นได้ว่า พิมพ์ค่า a a++ true a<5
for Loop เป็นการทำงานเพื่อให้ Program ทำงานซ้ำเมื่อเงื่อนไขเป็นจริง โดยจะทำไปเรื่อยๆ จนกว่าจะเป็นเท็จ เหมือนกับ while for ([ค่าเริ่มต้น];[เงื่อนไข];[การเปลี่ยนแปลงค่า]) { ประโยคคำสั่ง; }
ตัวอย่างการใช้งาน do while loop int a = 0; for(a=0;a<5;a++) { Console.WriteLine(a); } Console.ReadLine();
จากตัวอย่างจะเห็นได้ว่า a = 0 a<5 true พิมพ์ค่า a a++
break และ continue break เป็นคำสั่งเพื่อหยุดการทำงานของ loop และ condition โดยไม่ต้องรอให้การทำงานครบรอบ continue หากการใช้ break; จะเป็นการออกจากลูปไปทันที ส่วน continue เป็นการแค่หยุดการวนลูปรอบนั้น และกลับไปทำงานใน loop ในรอบต่อไป
ตัวอย่างการใช้ break int n; string s; s = Console.ReadLine(); while (s != "") { n = Int32.Parse(s); if (n < 0) break; }
ทำให้ codeสั้นลง int n; string s; while ((s = Console.ReadLine()) != "") { n = Int32.Parse(s); if (n < 0) break; }
ตัวอย่างการใช้ continue int i = 0, n, sum = 0; int max = 10; while (i < max) { n = Int32.Parse(Console.ReadLine()); if (n < 0) continue; } sum += n; i++; Console.WriteLine("average is {0}", sum / max);
Exercise(while, do while, for) จงเขียนโปรแกรมหา factorial ของค่าที่กำหนดใน ตัวแปร x โดย หาก x=5 โดย5! มีค่าเท่ากับ 5*4*3*2*1 และ ค่า 1! มีค่าเท่ากับ 1 จงรับค่าทาง keyboard เป็นตัวเลข หากตัวเลขเป็นเลขคู่ ให้แสดงตัวเลขนั้นมีเป็น Even หากเป็นเลขคี่ให้มีค่าเป็น Odd จงเขียนโปรแกรมเพื่อแสดงค่าเลขฐาน 2 ของตัวเลขเต็มบวกและ มีค่าไม่เกิน 255 โดยหากค่าเลข2 ในฐาน 2 จะได้ดังนี้ 0000 0010
Exercise(while, do while, for) จงแสดงตัวหนังสือตั้งแต่ ‘a’- ‘z’ ออกมา จงแสดงตัวเลขต่างๆ เช่น 12345 ให้อยู่ในรูป (1*10000)+(2*1000)+(3*100)+(4*10)+(5*1) วิธีหาหาตัวหารร่วมมาก(Greatest Common Divisor - gcd) โดยใช้ Euclid Algorithm มีขั้นตอนดังนี้ ให้ m และ n เป็นเลขจำนวนเต็มบวกสองตัว ซึ่ง m >= n ให้ r เป็นเศษเหลือจากการหาร m ด้วย n ถ้า r == 0 จะได้ว่า n เป็น gcd ให้ m = n และ n = r แล้วย้อนกลับไปทำขั้นตอนที่ 2 ให้เขียน program ที่หา gcd โดยใช้ Euclid algorithm