การทำซ้ำ (Repeation or Loop)

การทำซ้ำ (Repeation or Loop)

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

ตัวอย่าง 2.7 แสดงการทำซ้ำเท่าจำนวนสมาชิกในตารางแอสกี้ด้วย for

– คำถาม : .length และ .length() แตกต่างกันอย่างไร

– คำถาม : ผลลัพธ์ของโปรแกรมนี้ประมาณกี่บรรทัด

System.out.println(“ASCII character :: “); // j0204

for (int i=0; i<256; i++) {

System.out.print((char)i + ” “);

// System.out.println(i);  0 – 255

}

String s = “thaiall”;

System.out.println(s + s.length());

 

ตัวอย่าง 2.8 แสดงคำสั่ง while เพื่อทำซ้ำ แบบตรวจสอบก่อนประมวลผล

– คำถาม : try ทำงานเมื่อไร และผลลัพธ์เป็นอย่างไร

System.out.println(“print 1 to 10 :: “); // j0205

int i;

i = -5;

while (i <= 5) {

try {

i++;

System.out.println((double)5/i); //Infinity on i=0

System.out.println(5/i);         //catch worked on i=0

}

catch (ArithmeticException e) {

System.out.println(“may divide by zero”);

}

}

int k = 0;

i = 0;

while (i < 5) {

System.out.print(++k);

k = k + (i++);

System.out.print(k–);

} // 11122447711

 

ตัวอย่าง 2.9 แสดงคำสั่ง while เพื่อทำซ้ำ แบบประมวลผลก่อนตรวจสอบ

– โปรแกรมนี้ตรวจสอบความผิดพลาดของอาร์เรย์ว่าเรียกใช้ตัวที่ไม่ประกาศหรือไม่

System.out.println(“print 1 to 10 :: “);  // j0206

int i;

i = 1;

try {

do {

System.out.println(i);

i++;

} while (i <= 10);

} catch (ArrayIndexOutOfBoundsException e) {

System.out.println(“over index of array”);

}

ตัวอย่าง 2.10 พิมพ์ตัวอักษรแบบพิมพ์ใหญ่และเล็กสลับกัน

String s = “superman”;

for (int i=0;i<s.length();i++)

if ((i % 2) == 0)

System.out.print(s.substring(i,i + 1));

else

System.out.print(s.substring(i,i + 1).toUpperCase());

ตัวอย่าง 2.11 การทำซ้ำซ้อนกันแบบที่ 1

class Pyramid01 {

public static void main(String args[]) {

int k = 4;

for (int i=1;i<=k;i++) {

for (int j=2;j<=i;j++) { System.out.print(” “); }

System.out.print(i+””+i);

for (int j=k;j>=(i+1);j–) { System.out.print(“**”); }

System.out.println(i+””+i);

}

}

}

ตัวอย่าง 2.12 การทำซ้ำซ้อนกันแบบที่ 2

class Pyramid02 {

public static void main(String args[]) {

int k = 4;

for (int i=1;i<=k;i++) {

for (int j=i;j<=(i+2);j++) { System.out.print(j); }

for (int j=1;j<=(2+i);j++) { System.out.print(“*”); }

System.out.println();

}

}

}

ตัวอย่าง 2.13 การทำซ้ำซ้อนกันแบบที่ 3

class Pyramid03 {

public static void main(String args[])   {

int k = 4;

for (int i=1;i<=k;i++) {

System.out.print(i+””+(i+4));

for (int j=1;j<=(4+i);j++) {

System.out.print(“*”);

}

System.out.println();

}

}

}

ตัวอย่าง 2.14 การทำซ้ำซ้อนกันแบบที่ 4

class Pyramid04 {

public static void main(String args[]) {

int k = 4;

for (int i=1;i<=k;i++) {

for (int j=1;j<=i;j++) { System.out.print(“*”); }

for (int j=i;j>=2;j–) { System.out.print(j); }

for (int j=1;j<=i;j++) { System.out.print(j); }

System.out.println();

}

}

}