ปัญหา
ลองพิมพ์ชื่อ 10 ครั้งโดยไม่ใช้คำสั่งวนซ้ำหรือ goto ใด ๆ ในภาษาการเขียนโปรแกรม C
วิธีแก้ปัญหา
โดยทั่วไป คำสั่งวนซ้ำจะใช้เพื่อทำซ้ำบล็อกของโค้ดจนกว่าเงื่อนไขจะเป็นเท็จ
ตัวอย่าง1
ในโปรแกรมนี้ เรากำลังพยายามพิมพ์ชื่อ 10 ครั้งโดยไม่ต้องใช้คำสั่งวนซ้ำหรือ goto
#include <stdio.h> void printname(char* name,int count){ printf("%03d : %s\n",count+1,name); count+=1; if(count<10) printname(name,count); } int main(){ char name[50]; printf("\nEnter you name :"); scanf("%s",name); printname(name,0); return 0; }
ผลลัพธ์
Enter you name :tutorialspoint 001 : tutorialspoint 002 : tutorialspoint 003 : tutorialspoint 004 : tutorialspoint 005 : tutorialspoint 006 : tutorialspoint 007 : tutorialspoint 008 : tutorialspoint 009 : tutorialspoint 010 : tutorialspoint
ตัวอย่างที่ 2
ด้านล่างนี้เป็นโปรแกรมพิมพ์ชื่อของคุณ 10 ครั้งโดยใช้คำสั่งวนซ้ำหรือ goto -
#include <stdio.h> int main(){ char name[50],i; printf("\nEnter you name :"); scanf("%s",name); for(i=0;i<10;i++){ printf("%s\n",name); } return 0; }
ผลลัพธ์
Enter you name :TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint TutorialsPoint