170 likes | 439 Views
Loop ใน C#. สุพจน์ สวัตติวงศ์ tohpus@gmail.com g amepad.pigcanfly.com. Loop ใน C#. การทำงานวนซ้ำหรือ Loop ใน C# มีด้วยกัน 3 แบบดังนี้ while d o while for. w hile Loop. เป็นการทำงานเพื่อให้ Program ทำงานซ้ำเมื่อเงื่อนไขเป็นจริง โดยจะทำไปเรื่อยๆ จนกว่าจะเป็นเท็จ.
E N D
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; strings; s = Console.ReadLine(); while(s != "") { n = Int32.Parse(s); if(n < 0) { break; } s = Console.ReadLine(); }
ทำให้ codeสั้นลง int n; strings; while((s = Console.ReadLine()) != "") { n = Int32.Parse(s); if(n < 0) { break; } }
ตัวอย่างการใช้ continue int i = 0, n, sum = 0; intmax = 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