ภาษาซี กับ โจทย์ Loop ในตำนาน (5) แสดงเลขคู่/คี่ ด้วย Loop do while ตั้ง 0 จนถึง 100

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: ภาษาซี กับ โจทย์ Loop ในตำนาน (5) แสดงเลขคู่/คี่ ด้วย Loop do while ตั้ง 0 จนถึง 100

ภาษาซี กับ โจทย์ Loop ในตำนาน (5) แสดงเลขคู่/คี่ ด้วย Loop do while ตั้ง 0 จนถึง 100

โดย Aussadawut » 17/11/2018 4:23 pm

ภาษาซี กับ โจทย์ Loop ในตำนาน

สำหรับหลายๆคนที่เรียนมาแล้วหรือกำลังเรียนสายคอมพิวเตอร์ โปรแกรม จะต้องเจอกับโจทย์ Loop ชวนปวดหัวของอาจารย์อยู่เรื่อยๆ
นั่นก็เพราะว่า เราจะได้ฝึกให้มีความชำนาญในเรื่อง Loop และเข้าใจการทำงานของมันได้ง่ายขึ้นนั่นเอง

Loop คือ การทำงานวนซ้ำๆไปเรื่อยๆ จนกว่าจะถึงจุดที่เรากำหนดไว้

และโพสต์นี้เป็นโพสต์ที่ 5 แล้ว สำหรับ Loop ภาษาซีในตำนาน

โจทย์ : แสดงเลขคู่/คี่ ด้วย Loop do while ตั้ง 0 จนถึง 100
cdowhile246.png
cdowhile246.png (27.09 KiB) Viewed 10058 times

โค้ด: เลือกทั้งหมด

#include<stdio.h>
main(){
        int i=0;
        do{
                printf("%d ",i);
                i += 2;
        }while(i<=100);
}
ข้อควรจำ do while จะทำใน do ครั้งแรกก่อนเสมอนะ

บรรทัดที่ 3 กำหนดตัวแปร i = 0
บรรทัดที่ 4,5,6,7 Loop do while นี้ คือ ให้วน Loop ไปเรื่อยๆจนกว่าค่าของ i จะมีค่าเท่า 100 จากนั้น Loop จะหยุดลง สังเกตได้ใน Loop จะมี i += 2 เหมือนกับโพสต์ที่แล้วคือ ทุกครั้งที่วน Loop ค่าของ i จะเพิ่มครั้งละ 2 นั่นเอง แต่ในที่นี้ Loop do while จะทำใน do ก่อนเป็นครั้งแรกเสมอโดยไม่สนใจในเงื่อนไข ตามด้วยการวน Loop while

ยกตัวอย่างแบบเข้าใจง่ายๆ และคำพูดง่ายๆ

โค้ด: เลือกทั้งหมด

#include<stdio.h>
main(){
        int i=0;
        
        while(i<0){	// สั่งให้วน loop ถ้าค่า while น้อยกว่า 0
        	printf("%d",i);	// แสดงผลค่าของ i
        	i +=2 ;	// ค่า i เพิ่มขึ้น ครั้งละ 2
        }
        
        do{
                printf("1st run do");     	// แสดงผล 1st run do
                i += 2;				// ค่า i เพิ่มขึ้น ครั้งละ 2
        }while(i<0);				// สั่งในวน loop ถ้าค่า while น้อยกว่า 0
}

ผลลัพธ์
cdowhile.png
cdowhile.png (24.46 KiB) Viewed 10058 times
จะสังเกตได้ว่า Loop while จะไม่แสดงค่าใดๆออกมาเลย แต่ Loop do while จะแสดง 1st run do ออกมา

----------------------------------------------------------------------------------------------------------------------------------

ข้างบน