SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Iteration Statements - 04                                                  Computer Programming using Java                   41
  CHAPTER                                                  คําสังวนซํ้า
                                                                ่
       04                                            (Iteration Statements)
1. คําสั่งวนซําแบบเบืองต้ นด้ วยคําสั่ง while
              ้      ้
1. นิยามและข้ อกําหนดของคําสั่งวนซําหรือทําซํา
                                            ้         ้
   1) คําสังวนซํ ้าหรื อทําซํ ้า (Iteration/Repetition) คือ คําสังที่ใช้ สําหรับวนรอบเพื่อทํางานอย่างใดอย่างหนึ่ง
             ่                                                   ่
       ตามเงื่อนไข (Condition) ที่กําหนดขึ ้น และจะวนทํางานแบบนันไปเรื่ อยๆ ตราบใดที่เงื่อนไขยังเป็ นจริง
                                                                          ้
   2) คําสังวนซํ ้าในภาษาจาวา ประกอบไปด้ วย 3 ชุดคําสังได้ แก่ [1] while, [2] do-while และ [3] for
           ่                                                 ่

2. คําสั่งวนซําด้ วยคําสั่ง while มี 3 ส่วนหลักดังรูปแบบคําสังต่อไปนี ้
              ้                                              ่
      1    Initial;                              1   ค่าตังต้ น (Initial) เป็ นการกําหนดค่าเริ่มต้ นสําหรับการวนซํ ้า
                                                          ้
      2    while(Condition) {
      3      Statement(s);                       2   เงื่อนไข (Condition) จะเป็ นนิพจน์ตรรกะ (Boolean Expression)
      4      Update;
      5    }                                         ที่แสดงถึงค่าความจริงว่าเมื่อไรจะวนซํ ้า เมื่อไรจะสิ ้นสุดการวนซํ ้า

                     ผังงาน                      3   การเปลี่ยนรอบ (Update) เป็ นการเปลี่ยนรอบการวนซํ ้า (ถ้ าไม่ระบุ
                                                     ส่วนนี ้จะเกิดการวนซํ ้าแบบไม่ รู้จบ หรื อ Infinite Loop)
                        Initial
                                                     ภายในคําสัง while ถ้ ามีเพียง 1 คําสังไม่ต้องมีเครื่ องหมายปี ก
                                                                  ่                       ่
                                                     กาเปิ ดปิ ดก็ได้
                                     False
          Update
                      Condition                      พิจารณาเงื่อนไขของคําสัง while ว่าเป็ นจริงหรื อไม่ ถ้ าเป็ นจริง
                                                                                 ่
                       True                          จะเข้ าทําคําสังทุกๆ คําสัง ภายในคําสัง while และจะวนทํางาน
                                                                     ่         ่           ่
                       Statement
                                                     แบบนี ้ไปเรื่ อยๆ จนกว่าเงื่อนไขของคําสัง while จะเป็ นเท็จ ก็จะ
                                                                                             ่
                                                     สิ ้นสุดการวนซํ ้า

     ตัวอย่ าง                                       กําหนดค่าเริ่ มต้ นให้ ตวแปร i เท่ากับ 1 แล้ วทําการวนซํ ้าเพื่อ
                                                                             ั
           int i = 1;
      1
      2    while(i <= 5) {
                                                     แสดงค่า i ตังแต่ 1 ถึง 5 โดยในแต่ละรอบการวนซํ ้าจะเพิ่มจํา
                                                                     ้
      3      System.out.print(i);                    นวนรอบ (เพิ่มค่า i) ขึ ้นทีละ 1 (โดยใช้ คําสัง i++) ดังนัน
                                                                                                   ่            ้
      4      i++;
      5    }                                         ผลลัพธ์ที่ได้ คือ 12345

โจทย์ ข้อที่ 1 [ระดับง่ าย] จงแสดงผลลัพธ์ จากส่ วนของโปรแกรมตามค่ า n ที่กาหนดให้ ต่อไปนี ้ (5 คะแนน)
                                                                          ํ
 1     int i = 0, j = 5;                             n = 1          n = 0          n = -1            n = 3          n = -2
 2     while (i <= n) {
 3       System.out.println(n++);
 4     i = i + 2; }
 5     while (j > n) {
 6       System.out.println(--j);
 7       j--;
 8     }


© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
42     Computer Programming using Java                                                           04 - Iteration Statements


     โจทย์ ข้อที่ 2 [ระดับง่ าย] จงเขียนเฉพาะคําสั่ง while ตามเงื่อนไขต่ อไปนี ้ (10 คะแนน)
     1) แสดงคําว่ า "Java" ขึนบนจอภาพ 100 ครัง (5 คะแนน)
                                  ้                   ้




     2) แสดงเลขค่ ู 10 ตัวแรกออกทางจอภาพ โดยเริ่มต้ นที่ตวเลข 2 (5 คะแนน)
                                                         ั




     3. คําสั่งวนซําด้ วยคําสั่ง while (true) มีรูปแบบดังต่อไปนี ้
                   ้
          1    while(true) {
          2      Statement(s);
                                                      คําสัง while(true) มีเงื่อนไข (Condition) เป็ นจริง
                                                           ่
          3      if(Condition) break;                 ตลอดกาล ดังนันจะวนซํ ้าแบบไม่ร้ ูจบ
                                                                   ้
          4    }

                                                       การออกจากคําสัง while(true) ทําได้ เพียงวิธีเดียวเท่านัน คือ
                                                                        ่                                       ้
                          ผังงาน
                                                       ใช้ คําสัง if(…) break; โดยเมื่อเงื่อนไขของคําสัง if เป็ นจริง
                                                                ่                                      ่
                                                       ก็จะสิ ้นสุดการวนซํ ้า

                           True
                                                       เข้ าทําคําสังทุกๆ คําสัง ภายในคําสัง while ทันทีเพราะว่าเงื่อนไข
                                                                    ่          ่           ่
                         Statement                     เป็ นจริงตลอดกาล และจะวนทํางานแบบนี ้ไปเรื่ อยๆ จนกว่าเงื่อนไข
                True                      False
                                                       ของคําสัง if ซึงอยูภายในคําสัง while เป็ นจริง ก็จะ break
                                                                 ่      ่ ่            ่
                         Condition                     การทํางาน และสิ ้นสุดการวนซํ ้า

         ตัวอย่ าง                                     วนรับค่าตัวเลขจํานวนเต็ม 1 จํานวนทางแป้ นพิมพ์ แล้ วตรวจสอบ
          1    Scanner kb = new ...;                   ว่าตัวเลขที่รับเข้ ามานันเท่ากับ 0 หรื อไม่ ถ้ าใช่ก็จะสิ ้นสุดการวนซํ ้า
                                                                               ้
          2    while(true) {
          3      int x = kb.nextInt();                 แต่ถ้าไม่เช่นนันก็จะวนรับค่าตัวเลขจํานวนเต็มจากแปนพิมพ์ไป
                                                                       ้                                           ้
          4      if(x == 0) break;
          5    }                                       เรื่ อยๆ

     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Iteration Statements - 04                                          Computer Programming using Java              43
โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเขียนเฉพาะคําสั่ง while(true) ตามเงื่อนไขต่ อไปนี ้ (10 คะแนน)
1) แสดงคําว่ า “เกรี ยน” ขึนบนจอภาพ 1000 ครั ง (5 คะแนน)
                             ้                    ้




2) สุ่มตัวเลขตังแต่ 0-10 แล้ วแสดงผลขึนบนจอภาพไปเรื่อยๆ จะจบเมื่อสุ่มได้ เลข 5 (5 คะแนน)
               ้                      ้




โจทย์ ข้อที่ 4 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บค่ าตัวเลขจํานวนเต็มหนึ่งจํานวน
                                                        ู
เข้ ามาทางแปนพิมพ์ แล้ วทําการแสดงค่ าตัวเลขจํานวนเต็มตังแต่ 0 จนถึงตัวเลขที่รับเข้ ามานันออกทาง
               ้                                          ้                               ้
จอภาพทีละบรรทัดให้ สวยงาม (10 คะแนน)
 1     2     3     4




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
44     Computer Programming using Java                                                 04 - Iteration Statements


     โจทย์ ข้อที่ 5 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บค่ าตัวเลขจํานวนเต็มหนึ่งจํานวน
                                                               ู
     เข้ ามาทางแปนพิมพ์ แล้ ววนรอบแสดงเครื่ องหมายดอกจัน "*" ให้ มีจํานวนเท่ ากับค่ าของตัวเลขที่
                    ้
     รั บเข้ ามานัน และแสดงผลลัพธ์ ส่วนอื่นๆ ให้ เหมือนกับตัวอย่ างต่ อไปนี ้ (10 คะแนน)
                  ้
      1     2     3     4                                                                Enter number: -1
                                                                                         -1

                                                                                         Enter number: 4
                                                                                         4 ****

                                                                                         Enter number: 6
                                                                                         6 ******




     โจทย์ ข้อที่ 6 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มหนึ่งจํา
                                                                 ู
     นวนเข้ ามาเก็บไว้ ในตัวแปร n และหาผลบวกของตัวเลขตังแต่ 1 จนถึง n เก็บไว้ ในตัวแปร sum พร้ อมทัง
                                                         ้                                         ้
     แสดงค่ าของตัวแปร sum ที่เป็ นผลคําตอบสุดท้ ายออกทางจอภาพ (10 คะแนน)
      1     2     3     4




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Iteration Statements - 04                                          Computer Programming using Java              45
โจทย์ ข้อที่ 7 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มหนึ่งจํา
                                                                    ู
นวนเข้ ามาเก็บไว้ ในตัวแปร n และหาค่ าแฟคทอเรี ยล (Factorial) ของจํานวนนัน (ผลคณของตัวเลข 1
                                                                               ้     ู
จนถึง n) เช่ น 4! = 1 x 2 x 3 x 4 = 24 เป็ นต้ น พร้ อมทังแสดงผลลัพธ์ ออกทางจอภาพ (10 คะแนน)
                                                         ้
 1     2     3     4




โจทย์ ข้อที่ 8 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มสองจํา
                                                             ู
นวนเข้ ามาเก็บไว้ ในตัวแปร a และ b ตามลําดับ และคํานวณหาค่ าเลขยกกําลังของ ab โดย a เป็ นเลข
ฐานและ b เป็ นเลขชีกาลัง พร้ อมทังแสดงผลลัพธ์ ออกทางจอภาพให้ สวยงาม (10 คะแนน)
                     ้ํ          ้
 1     2     3     4
                                                                               ให้ b มีค่าตังแต่ 0 ขึนไป และ
                                                                                            ้        ้
                                                                               ห้ ามใช้ เมท็อดในคลาส Math
                                                                               ในการคํานวณ




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
46     Computer Programming using Java                                                 04 - Iteration Statements


     โจทย์ ข้อที่ 9 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มสองจํา
                                                                     ู
     นวนเข้ ามาเก็บไว้ ในตัวแปร a และ b ตามลําดับ และหาผลคณของตัวเลขสองจํานวนนัน โดยใช้ หลักการ
                                                              ู                       ้
     บวก (ห้ ามใช้ เครื่ องหมายคณ) เช่ น a x b มีความหมายเท่ ากับ a บวกกัน b ตัว พร้ อมทังแสดงผลลัพธ์
                                ู                                                        ้
     ออกทางจอภาพ (10 คะแนน)
      1     2     3     4




     โจทย์ ข้อที่ 10 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มหนึ่งจํา
                                                                  ู
     นวนเข้ ามาเก็บไว้ ในตัวแปร n และคํานวณหาผลบวกของตัวเลขคี่ตังแต่ 1 ถึง n ที่หาร 3 ลงตัว พร้ อมทัง
                                                                ้                                   ้
     แสดงผลลัพธ์ ออกทางจอภาพ (10 คะแนน)
      1     2     3     4     5




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Iteration Statements - 04                                           Computer Programming using Java                     47
โจทย์ ข้อที่ 11 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มบวกหนึ่งจํา-
                                                          ู
นวนเข้ ามาทางแปนพิมพ์ แล้ วแสดงผลลัพธ์ ท่ ีได้ เป็ นเลขฐานสองที่มีค่าเท่ ากับจํานวนนั น ดังตัวอย่ าง
                   ้                                                                  ้
ต่ อไปนี ้ (10 คะแนน)                                         Decimal Number: 14
                                                                          Binary Number: 1110
 1       2    3      4     5
                                                                          Decimal Number: 345
                                                                          Binary Number: 101011001




2. คําสั่งวนซําแบบเบืองต้ นด้ วยคําสั่ง for
              ้      ้
1. คําสั่งวนซําด้ วยคําสั่ง for มี 3 ส่วนหลักเช่นเดียวกับคําสัง while ดังรูปแบบต่อไปนี ้
              ้                                               ่
     1       for(Initial;Condition;Update) {
     2         Statement(s);                                       [1] ค่าตังต้ น (Initial) [2] เงื่อนไข (Condition)
                                                                            ้
     3       }                                                     และ [3] การเปลี่ยนรอบ (Update) ทัง้ 3 ส่วนนี ้
                                                                   จะอยูภายในส่วนหัวของคําสัง for ทังหมด
                                                                         ่                           ่      ้
                               ผังงาน

                                                                   ภายในคําสัง for ถ้ ามีเพียง 1 คําสังไม่ต้องมี
                                                                               ่                      ่
                                Initial
                                                                   เครื่ องหมายปี กกาเปิ ดปิ ดก็ได้

                                                                   พิจารณาเงื่อนไขของคําสัง for ว่าเป็ นจริ ง
                                                                                                  ่
                                           False
                  Update
                               Condition                           หรื อไม่ ถ้ าเป็ นจริ งจะเข้ าทําคําสังทุกๆ คําสัง
                                                                                                         ่          ่
                               True                                ภายในคําสัง for และจะวนทํางานแบบนี ้ไป
                                                                                 ่
                               Statement
                                                                   เรื่ อยๆ จนกว่าเงื่อนไขของคําสัง for จะเป็ นเท็จ
                                                                                                       ่
                                                                   ก็จะจบการวนซํ ้า

© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
48     Computer Programming using Java                                                         04 - Iteration Statements


          ตัวอย่ าง                                              กําหนดค่าเริ่ มต้ นให้ ตวแปร i เท่ากับ 1 แล้ วทําการวนซํ ้า
                                                                                         ั
           1
           2
                for(int i = 1; i <= 5; i++) {
                  System.out.print(i);
                                                                 เพื่อแสดงค่า i ตังแต่ 1 ถึง 5 โดยในแต่ละรอบการวนซํ ้า
                                                                                     ้
           3    }                                                จะเพิ่มค่า i ขึ ้นทีละ 1 ดังนันผลลัพธ์ที่ได้ คือ 12345
                                                                                               ้

     โจทย์ ข้อที่ 12 [ระดับง่ าย] จงแสดงผลลัพธ์ จากส่ วนของโปรแกรมตามค่ า n ที่กาหนดให้ ต่อไปนี ้ (4 คะแนน)
                                                                                ํ
      1     double c = 3.0;                                      n = 3            n = 0            n = 1             n = 4
      2     for(c = 1.0; c <= n; c += 0.1)
      3     System.out.println(c++);
      4     c++;
      5     for(int i = 6; i > n; i--) {
      6       System.out.print(i);
      7     System.out.print(n++);
      8     }



     โจทย์ ข้อที่ 13 [ระดับง่ าย] จงเขียนเฉพาะคําสั่ง for ตามเงื่อนไขต่ อไปนี ้ (10 คะแนน)
     1) แสดงคําว่ า "Get A" ขึนบนจอภาพ 1000 ครัง (5 คะแนน)
                                   ้                    ้




     2) แสดงเลขค่ ู 900 ตัวแรกออกทางจอภาพ (เริ่ มที่ 78) (5 คะแนน)




     2. เปรียบเทียบคําสั่ง while และคําสั่ง for
        1) คําสัง while และคําสัง for มีลกษณะการทํางานที่วนซํ ้าเหมือนกัน แต่มีรูปแบบขการเขียนที่แตกต่างกัน
                  ่                 ่         ั
        2) คําสัง while ใช้ วนซํ ้าเมื่อไม่ทราบจํานวนรอบที่แน่ชด แต่คําสัง for ใช้ วนซํ ้าเมื่อทราบจํานวนรอบที่แน่ชด
                ่                                              ั         ่                                         ั
        3) การแปลงคําสัง while ให้ เป็ นคําสัง for
                         ่                      ่
                                                             1


               1      int i = 1;                                       1   for(int i = 1; i <= 5; i++) {
               2      while(i <= 5) {                                  2     ...
               3        ...                                            3   }
                                                         2
               4        i++;
               5      }
                                                                   3


     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Iteration Statements - 04                                          Computer Programming using Java              49
โจทย์ ข้อที่ 14 [ระดับง่ าย] จงเขียนส่ วนของโปรแกรมภาษาจาวาเพื่อเปลี่ยนคําสั่ง while ในโจทย์ ข้อที่ 6
ถึง 9 ให้ เป็ นคําสั่ง for โดยไม่ ต้องเขียนโปรแกรมในส่ วนของการรั บค่ าและแสดงผล และสามารถเรี ยก
ใช้ ตวแปรเดิมของการรั บค่ าได้ เลย แต่ ตวแปรอื่นๆ จะต้ องประกาศใหม่ ทงหมด (20 คะแนน)
     ั                                    ั                            ั้
1) แปลงเฉพาะคําสั่ง while ในโจทย์ ข้อที่ 6 ให้ เป็ นคําสั่ง for (5 คะแนน)




2) แปลงเฉพาะคําสั่ง while ในโจทย์ ข้อที่ 7 ให้ เป็ นคําสั่ง for (5 คะแนน)




3) แปลงเฉพาะคําสั่ง while ในโจทย์ ข้อที่ 8 ให้ เป็ นคําสั่ง for (5 คะแนน)




4) แปลงเฉพาะคําสั่ง while ในโจทย์ ข้อที่ 9 ให้ เป็ นคําสั่ง for (5 คะแนน)




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
50     Computer Programming using Java                                                 04 - Iteration Statements


     โจทย์ ข้อที่ 15 [ระดับง่ าย - ระดับยาก] จงเขียนเฉพาะคําสั่ง for เพื่อหาคําตอบของสมการต่ อไปนี ้ พร้ อม
     ทังประกาศตัวแปรทุกตัวที่เรี ยกใช้ งาน และห้ ามเรียกใช้ เมท็อดในคลาส Math (30 คะแนน)
       ้
     1) [ระดับง่ าย] 5 + 10 + 15 + ... + 40 (5 คะแนน)




     2) [ระดับง่ าย] 1   + 8 + 27 + ... + 20 3   (5 คะแนน)




     3) [ระดับปานกลาง] 1      + 3 + 7 + 15 + 31 + ... + (215 − 1)        (5 คะแนน)




                                  1   1   1   1         1
     4) [ระดับปานกลาง] 1      +     −   +   −   + ... +          (5 คะแนน)
                                  2   3   4   5         30




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้
Iteration Statements - 04                                          Computer Programming using Java              51
                       23   25   27   29   211         219
5) [ระดับยาก]    2 −      +    −    +    −     + ... −             (10 คะแนน)
                       3!   5!   7!   9!   11!         19!




โจทย์ ข้อที่ 16 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรับตัวเลขจํานวนเต็ม 100 จํา-
                                                              ู
นวนทางแปนพิมพ์ แล้ วทําการหาค่ าสงสุด (Maximum) ค่ าตํ่าสุด (Minimum) และค่ าเฉลี่ย (Average) ของ
             ้                       ู
ตัวเลขทังหมด พร้ อมทังแสดงผลลัพธ์ ท่ ได้ ออกทางจอภาพ (10 คะแนน)
         ้              ้              ี
 1     2     3     4     5




© สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                            ้
52     Computer Programming using Java                                                 04 - Iteration Statements


     โจทย์ ข้อที่ 17 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มเข้ ามาทาง
                                                                  ู
     แปนพิมพ์ หนึ่งจํานวน แล้ วแสดงผลลัพธ์ ตามรปทรงต่ อไปนี ้ (10 คะแนน)
       ้                                       ู                                  Number: 5
      1     2     3     4     5                                                               *
                                                                                              **
                                                                                              ***
                                                                                              ****
                                                                                              *****

                                                                                              Number: 10
                                                                                              *
                                                                                              **
                                                                                              ***
                                                                                              ****
                                                                                              *****
                                                                                              ******
                                                                                              *******
                                                                                              ********
                                                                                              *********
                                                                                              **********




     โจทย์ ข้อที่ 18 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มหนึ่งจํานวน
                                                                   ู
     ทางแปนพิมพ์ และทําการตรวจสอบว่ าตัวเลขดังกล่ าวเป็ นจํานวนเฉพาะหรือไม่ พร้ อมทังแสดงผลลัพธ์ ท่ ี
            ้                                                                                ้
     ได้ ดงตัวอย่ าง ซึ่งจํานวนเฉพาะ คือ จํานวนที่ค่า 1 และตัวมันเองเท่ านันที่หารลงตัว (15 คะแนน)
          ั                                                                ้
      1     2     3     4     5
                                                                              Number: 17
                                                                              17 is a prime number

                                                                              Number: 45
                                                                              45 is not a prime number




     © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์)
                                                 ้

Más contenido relacionado

La actualidad más candente

ม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocodeม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocode
Bansit Deelom
 

La actualidad más candente (11)

Lesson3
Lesson3Lesson3
Lesson3
 
ม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocodeม.3 รหัสจำลอง Pseudocode
ม.3 รหัสจำลอง Pseudocode
 
งานที่ #1 ตัวรายงานการเขียนคำสั่งควบคุมแบบมีทางเลือก
งานที่ #1 ตัวรายงานการเขียนคำสั่งควบคุมแบบมีทางเลือกงานที่ #1 ตัวรายงานการเขียนคำสั่งควบคุมแบบมีทางเลือก
งานที่ #1 ตัวรายงานการเขียนคำสั่งควบคุมแบบมีทางเลือก
 
Tech30101 ch8
Tech30101 ch8Tech30101 ch8
Tech30101 ch8
 
Flowchart credit :
Flowchart credit : Flowchart credit :
Flowchart credit :
 
Java-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and ObjectsJava-Chapter 12 Classes and Objects
Java-Chapter 12 Classes and Objects
 
Java-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional ArraysJava-Chapter 10 Two Dimensional Arrays
Java-Chapter 10 Two Dimensional Arrays
 
พื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวาพื้นฐานโปรแกรมภาษาจาวา
พื้นฐานโปรแกรมภาษาจาวา
 
ค่าสูงสุดสัมบูรณ์และค่าต่ำสุดสัมบูรณ์ของฟังก์ชัน
ค่าสูงสุดสัมบูรณ์และค่าต่ำสุดสัมบูรณ์ของฟังก์ชันค่าสูงสุดสัมบูรณ์และค่าต่ำสุดสัมบูรณ์ของฟังก์ชัน
ค่าสูงสุดสัมบูรณ์และค่าต่ำสุดสัมบูรณ์ของฟังก์ชัน
 
คำยืมภาษาเขมรในภาษาไทย Khmer Loanwords in Thai
คำยืมภาษาเขมรในภาษาไทย Khmer Loanwords in Thaiคำยืมภาษาเขมรในภาษาไทย Khmer Loanwords in Thai
คำยืมภาษาเขมรในภาษาไทย Khmer Loanwords in Thai
 
บทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Javaบทที่ 3 พื้นฐานภาษา Java
บทที่ 3 พื้นฐานภาษา Java
 

Destacado (11)

Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
Java-Answer Chapter 01-04
Java-Answer Chapter 01-04Java-Answer Chapter 01-04
Java-Answer Chapter 01-04
 
How to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master ProgramHow to Study and Research in Computer-related Master Program
How to Study and Research in Computer-related Master Program
 
Java-Chapter 08 Methods
Java-Chapter 08 MethodsJava-Chapter 08 Methods
Java-Chapter 08 Methods
 
Java-Chapter 06 File Operations
Java-Chapter 06 File OperationsJava-Chapter 06 File Operations
Java-Chapter 06 File Operations
 
Java-Chapter 11 Recursions
Java-Chapter 11 RecursionsJava-Chapter 11 Recursions
Java-Chapter 11 Recursions
 
Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)Java-Answer Chapter 05-06 (For Print)
Java-Answer Chapter 05-06 (For Print)
 
Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)Java-Answer Chapter 07 (For Print)
Java-Answer Chapter 07 (For Print)
 
Java-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and ObjectsJava-Chapter 13 Advanced Classes and Objects
Java-Chapter 13 Advanced Classes and Objects
 
IP address anonymization
IP address anonymizationIP address anonymization
IP address anonymization
 
การควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรมการควบคุมทิศทางการทำงานของโปรแกรม
การควบคุมทิศทางการทำงานของโปรแกรม
 

Similar a Java-Chapter 04 Iteration Statements

กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
Aeew Autaporn
 
หน่วยการเรียนที่ 4 การใช้คำสั่งควบคุมและการตัดสินใจ vb2013 express
หน่วยการเรียนที่ 4 การใช้คำสั่งควบคุมและการตัดสินใจ vb2013 expressหน่วยการเรียนที่ 4 การใช้คำสั่งควบคุมและการตัดสินใจ vb2013 express
หน่วยการเรียนที่ 4 การใช้คำสั่งควบคุมและการตัดสินใจ vb2013 express
ครูสม ฟาร์มมะนาว
 
เงื่อนไข การตัดสินใจ
เงื่อนไข การตัดสินใจเงื่อนไข การตัดสินใจ
เงื่อนไข การตัดสินใจ
Oraphan4
 

Similar a Java-Chapter 04 Iteration Statements (13)

บทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรมบทที่3 การควบคุมโปรแกรม
บทที่3 การควบคุมโปรแกรม
 
Lesson4
Lesson4Lesson4
Lesson4
 
งานทำ Blog บทที่ 6
งานทำ Blog บทที่ 6งานทำ Blog บทที่ 6
งานทำ Blog บทที่ 6
 
4 การเขียนคำสั่งแบบวนซ้ำ
4 การเขียนคำสั่งแบบวนซ้ำ 4 การเขียนคำสั่งแบบวนซ้ำ
4 การเขียนคำสั่งแบบวนซ้ำ
 
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
กลุ่มที่4 ม.6/3 คำสั่ง For,While,Do while
 
Know4 2
Know4 2Know4 2
Know4 2
 
ฟังก์ชั่น While
ฟังก์ชั่น Whileฟังก์ชั่น While
ฟังก์ชั่น While
 
ฟังก์ชั่น do_while
ฟังก์ชั่น do_whileฟังก์ชั่น do_while
ฟังก์ชั่น do_while
 
หน่วยการเรียนที่ 4 การใช้คำสั่งควบคุมและการตัดสินใจ vb2013 express
หน่วยการเรียนที่ 4 การใช้คำสั่งควบคุมและการตัดสินใจ vb2013 expressหน่วยการเรียนที่ 4 การใช้คำสั่งควบคุมและการตัดสินใจ vb2013 express
หน่วยการเรียนที่ 4 การใช้คำสั่งควบคุมและการตัดสินใจ vb2013 express
 
Presentation2
Presentation2Presentation2
Presentation2
 
เงื่อนไข การตัดสินใจ
เงื่อนไข การตัดสินใจเงื่อนไข การตัดสินใจ
เงื่อนไข การตัดสินใจ
 
การเขียนคำสั่งควบคุมแบบวนซ้ำ
การเขียนคำสั่งควบคุมแบบวนซ้ำการเขียนคำสั่งควบคุมแบบวนซ้ำ
การเขียนคำสั่งควบคุมแบบวนซ้ำ
 
การเขียนคำสั่งแบบวนซ้ำ
การเขียนคำสั่งแบบวนซ้ำการเขียนคำสั่งแบบวนซ้ำ
การเขียนคำสั่งแบบวนซ้ำ
 

Más de Wongyos Keardsri

SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
Wongyos Keardsri
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
Wongyos Keardsri
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
Wongyos Keardsri
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
Wongyos Keardsri
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
Wongyos Keardsri
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
Wongyos Keardsri
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
Wongyos Keardsri
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
Wongyos Keardsri
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
Wongyos Keardsri
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
Wongyos Keardsri
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
Wongyos Keardsri
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
Wongyos Keardsri
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
Wongyos Keardsri
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
Wongyos Keardsri
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
Wongyos Keardsri
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
Wongyos Keardsri
 

Más de Wongyos Keardsri (20)

The next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applicationsThe next generation intelligent transport systems: standards and applications
The next generation intelligent transport systems: standards and applications
 
SysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script ProgrammingSysProg-Tutor 03 Unix Shell Script Programming
SysProg-Tutor 03 Unix Shell Script Programming
 
SysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating SystemSysProg-Tutor 02 Introduction to Unix Operating System
SysProg-Tutor 02 Introduction to Unix Operating System
 
SysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming LanguageSysProg-Tutor 01 Introduction to C Programming Language
SysProg-Tutor 01 Introduction to C Programming Language
 
Discrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part IIIDiscrete-Chapter 11 Graphs Part III
Discrete-Chapter 11 Graphs Part III
 
Discrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part IIDiscrete-Chapter 11 Graphs Part II
Discrete-Chapter 11 Graphs Part II
 
Discrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part IDiscrete-Chapter 11 Graphs Part I
Discrete-Chapter 11 Graphs Part I
 
Discrete-Chapter 10 Trees
Discrete-Chapter 10 TreesDiscrete-Chapter 10 Trees
Discrete-Chapter 10 Trees
 
Discrete-Chapter 09 Algorithms
Discrete-Chapter 09 AlgorithmsDiscrete-Chapter 09 Algorithms
Discrete-Chapter 09 Algorithms
 
Discrete-Chapter 08 Relations
Discrete-Chapter 08 RelationsDiscrete-Chapter 08 Relations
Discrete-Chapter 08 Relations
 
Discrete-Chapter 07 Probability
Discrete-Chapter 07 ProbabilityDiscrete-Chapter 07 Probability
Discrete-Chapter 07 Probability
 
Discrete-Chapter 06 Counting
Discrete-Chapter 06 CountingDiscrete-Chapter 06 Counting
Discrete-Chapter 06 Counting
 
Discrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and ProofsDiscrete-Chapter 05 Inference and Proofs
Discrete-Chapter 05 Inference and Proofs
 
Discrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part IIDiscrete-Chapter 04 Logic Part II
Discrete-Chapter 04 Logic Part II
 
Discrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part IDiscrete-Chapter 04 Logic Part I
Discrete-Chapter 04 Logic Part I
 
Discrete-Chapter 03 Matrices
Discrete-Chapter 03 MatricesDiscrete-Chapter 03 Matrices
Discrete-Chapter 03 Matrices
 
Discrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and SequencesDiscrete-Chapter 02 Functions and Sequences
Discrete-Chapter 02 Functions and Sequences
 
Discrete-Chapter 01 Sets
Discrete-Chapter 01 SetsDiscrete-Chapter 01 Sets
Discrete-Chapter 01 Sets
 
Discrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling ComputationDiscrete-Chapter 12 Modeling Computation
Discrete-Chapter 12 Modeling Computation
 
Java-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindowJava-Chapter 14 Creating Graphics with DWindow
Java-Chapter 14 Creating Graphics with DWindow
 

Java-Chapter 04 Iteration Statements

  • 1. Iteration Statements - 04 Computer Programming using Java 41 CHAPTER คําสังวนซํ้า ่ 04 (Iteration Statements) 1. คําสั่งวนซําแบบเบืองต้ นด้ วยคําสั่ง while ้ ้ 1. นิยามและข้ อกําหนดของคําสั่งวนซําหรือทําซํา ้ ้ 1) คําสังวนซํ ้าหรื อทําซํ ้า (Iteration/Repetition) คือ คําสังที่ใช้ สําหรับวนรอบเพื่อทํางานอย่างใดอย่างหนึ่ง ่ ่ ตามเงื่อนไข (Condition) ที่กําหนดขึ ้น และจะวนทํางานแบบนันไปเรื่ อยๆ ตราบใดที่เงื่อนไขยังเป็ นจริง ้ 2) คําสังวนซํ ้าในภาษาจาวา ประกอบไปด้ วย 3 ชุดคําสังได้ แก่ [1] while, [2] do-while และ [3] for ่ ่ 2. คําสั่งวนซําด้ วยคําสั่ง while มี 3 ส่วนหลักดังรูปแบบคําสังต่อไปนี ้ ้ ่ 1 Initial; 1 ค่าตังต้ น (Initial) เป็ นการกําหนดค่าเริ่มต้ นสําหรับการวนซํ ้า ้ 2 while(Condition) { 3 Statement(s); 2 เงื่อนไข (Condition) จะเป็ นนิพจน์ตรรกะ (Boolean Expression) 4 Update; 5 } ที่แสดงถึงค่าความจริงว่าเมื่อไรจะวนซํ ้า เมื่อไรจะสิ ้นสุดการวนซํ ้า ผังงาน 3 การเปลี่ยนรอบ (Update) เป็ นการเปลี่ยนรอบการวนซํ ้า (ถ้ าไม่ระบุ ส่วนนี ้จะเกิดการวนซํ ้าแบบไม่ รู้จบ หรื อ Infinite Loop) Initial ภายในคําสัง while ถ้ ามีเพียง 1 คําสังไม่ต้องมีเครื่ องหมายปี ก ่ ่ กาเปิ ดปิ ดก็ได้ False Update Condition พิจารณาเงื่อนไขของคําสัง while ว่าเป็ นจริงหรื อไม่ ถ้ าเป็ นจริง ่ True จะเข้ าทําคําสังทุกๆ คําสัง ภายในคําสัง while และจะวนทํางาน ่ ่ ่ Statement แบบนี ้ไปเรื่ อยๆ จนกว่าเงื่อนไขของคําสัง while จะเป็ นเท็จ ก็จะ ่ สิ ้นสุดการวนซํ ้า ตัวอย่ าง กําหนดค่าเริ่ มต้ นให้ ตวแปร i เท่ากับ 1 แล้ วทําการวนซํ ้าเพื่อ ั int i = 1; 1 2 while(i <= 5) { แสดงค่า i ตังแต่ 1 ถึง 5 โดยในแต่ละรอบการวนซํ ้าจะเพิ่มจํา ้ 3 System.out.print(i); นวนรอบ (เพิ่มค่า i) ขึ ้นทีละ 1 (โดยใช้ คําสัง i++) ดังนัน ่ ้ 4 i++; 5 } ผลลัพธ์ที่ได้ คือ 12345 โจทย์ ข้อที่ 1 [ระดับง่ าย] จงแสดงผลลัพธ์ จากส่ วนของโปรแกรมตามค่ า n ที่กาหนดให้ ต่อไปนี ้ (5 คะแนน) ํ 1 int i = 0, j = 5; n = 1 n = 0 n = -1 n = 3 n = -2 2 while (i <= n) { 3 System.out.println(n++); 4 i = i + 2; } 5 while (j > n) { 6 System.out.println(--j); 7 j--; 8 } © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 2. 42 Computer Programming using Java 04 - Iteration Statements โจทย์ ข้อที่ 2 [ระดับง่ าย] จงเขียนเฉพาะคําสั่ง while ตามเงื่อนไขต่ อไปนี ้ (10 คะแนน) 1) แสดงคําว่ า "Java" ขึนบนจอภาพ 100 ครัง (5 คะแนน) ้ ้ 2) แสดงเลขค่ ู 10 ตัวแรกออกทางจอภาพ โดยเริ่มต้ นที่ตวเลข 2 (5 คะแนน) ั 3. คําสั่งวนซําด้ วยคําสั่ง while (true) มีรูปแบบดังต่อไปนี ้ ้ 1 while(true) { 2 Statement(s); คําสัง while(true) มีเงื่อนไข (Condition) เป็ นจริง ่ 3 if(Condition) break; ตลอดกาล ดังนันจะวนซํ ้าแบบไม่ร้ ูจบ ้ 4 } การออกจากคําสัง while(true) ทําได้ เพียงวิธีเดียวเท่านัน คือ ่ ้ ผังงาน ใช้ คําสัง if(…) break; โดยเมื่อเงื่อนไขของคําสัง if เป็ นจริง ่ ่ ก็จะสิ ้นสุดการวนซํ ้า True เข้ าทําคําสังทุกๆ คําสัง ภายในคําสัง while ทันทีเพราะว่าเงื่อนไข ่ ่ ่ Statement เป็ นจริงตลอดกาล และจะวนทํางานแบบนี ้ไปเรื่ อยๆ จนกว่าเงื่อนไข True False ของคําสัง if ซึงอยูภายในคําสัง while เป็ นจริง ก็จะ break ่ ่ ่ ่ Condition การทํางาน และสิ ้นสุดการวนซํ ้า ตัวอย่ าง วนรับค่าตัวเลขจํานวนเต็ม 1 จํานวนทางแป้ นพิมพ์ แล้ วตรวจสอบ 1 Scanner kb = new ...; ว่าตัวเลขที่รับเข้ ามานันเท่ากับ 0 หรื อไม่ ถ้ าใช่ก็จะสิ ้นสุดการวนซํ ้า ้ 2 while(true) { 3 int x = kb.nextInt(); แต่ถ้าไม่เช่นนันก็จะวนรับค่าตัวเลขจํานวนเต็มจากแปนพิมพ์ไป ้ ้ 4 if(x == 0) break; 5 } เรื่ อยๆ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 3. Iteration Statements - 04 Computer Programming using Java 43 โจทย์ ข้อที่ 3 [ระดับง่ าย] จงเขียนเฉพาะคําสั่ง while(true) ตามเงื่อนไขต่ อไปนี ้ (10 คะแนน) 1) แสดงคําว่ า “เกรี ยน” ขึนบนจอภาพ 1000 ครั ง (5 คะแนน) ้ ้ 2) สุ่มตัวเลขตังแต่ 0-10 แล้ วแสดงผลขึนบนจอภาพไปเรื่อยๆ จะจบเมื่อสุ่มได้ เลข 5 (5 คะแนน) ้ ้ โจทย์ ข้อที่ 4 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บค่ าตัวเลขจํานวนเต็มหนึ่งจํานวน ู เข้ ามาทางแปนพิมพ์ แล้ วทําการแสดงค่ าตัวเลขจํานวนเต็มตังแต่ 0 จนถึงตัวเลขที่รับเข้ ามานันออกทาง ้ ้ ้ จอภาพทีละบรรทัดให้ สวยงาม (10 คะแนน) 1 2 3 4 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 4. 44 Computer Programming using Java 04 - Iteration Statements โจทย์ ข้อที่ 5 [ระดับง่ าย] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บค่ าตัวเลขจํานวนเต็มหนึ่งจํานวน ู เข้ ามาทางแปนพิมพ์ แล้ ววนรอบแสดงเครื่ องหมายดอกจัน "*" ให้ มีจํานวนเท่ ากับค่ าของตัวเลขที่ ้ รั บเข้ ามานัน และแสดงผลลัพธ์ ส่วนอื่นๆ ให้ เหมือนกับตัวอย่ างต่ อไปนี ้ (10 คะแนน) ้ 1 2 3 4 Enter number: -1 -1 Enter number: 4 4 **** Enter number: 6 6 ****** โจทย์ ข้อที่ 6 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มหนึ่งจํา ู นวนเข้ ามาเก็บไว้ ในตัวแปร n และหาผลบวกของตัวเลขตังแต่ 1 จนถึง n เก็บไว้ ในตัวแปร sum พร้ อมทัง ้ ้ แสดงค่ าของตัวแปร sum ที่เป็ นผลคําตอบสุดท้ ายออกทางจอภาพ (10 คะแนน) 1 2 3 4 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 5. Iteration Statements - 04 Computer Programming using Java 45 โจทย์ ข้อที่ 7 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มหนึ่งจํา ู นวนเข้ ามาเก็บไว้ ในตัวแปร n และหาค่ าแฟคทอเรี ยล (Factorial) ของจํานวนนัน (ผลคณของตัวเลข 1 ้ ู จนถึง n) เช่ น 4! = 1 x 2 x 3 x 4 = 24 เป็ นต้ น พร้ อมทังแสดงผลลัพธ์ ออกทางจอภาพ (10 คะแนน) ้ 1 2 3 4 โจทย์ ข้อที่ 8 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มสองจํา ู นวนเข้ ามาเก็บไว้ ในตัวแปร a และ b ตามลําดับ และคํานวณหาค่ าเลขยกกําลังของ ab โดย a เป็ นเลข ฐานและ b เป็ นเลขชีกาลัง พร้ อมทังแสดงผลลัพธ์ ออกทางจอภาพให้ สวยงาม (10 คะแนน) ้ํ ้ 1 2 3 4 ให้ b มีค่าตังแต่ 0 ขึนไป และ ้ ้ ห้ ามใช้ เมท็อดในคลาส Math ในการคํานวณ © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 6. 46 Computer Programming using Java 04 - Iteration Statements โจทย์ ข้อที่ 9 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มสองจํา ู นวนเข้ ามาเก็บไว้ ในตัวแปร a และ b ตามลําดับ และหาผลคณของตัวเลขสองจํานวนนัน โดยใช้ หลักการ ู ้ บวก (ห้ ามใช้ เครื่ องหมายคณ) เช่ น a x b มีความหมายเท่ ากับ a บวกกัน b ตัว พร้ อมทังแสดงผลลัพธ์ ู ้ ออกทางจอภาพ (10 คะแนน) 1 2 3 4 โจทย์ ข้อที่ 10 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มหนึ่งจํา ู นวนเข้ ามาเก็บไว้ ในตัวแปร n และคํานวณหาผลบวกของตัวเลขคี่ตังแต่ 1 ถึง n ที่หาร 3 ลงตัว พร้ อมทัง ้ ้ แสดงผลลัพธ์ ออกทางจอภาพ (10 คะแนน) 1 2 3 4 5 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 7. Iteration Statements - 04 Computer Programming using Java 47 โจทย์ ข้อที่ 11 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มบวกหนึ่งจํา- ู นวนเข้ ามาทางแปนพิมพ์ แล้ วแสดงผลลัพธ์ ท่ ีได้ เป็ นเลขฐานสองที่มีค่าเท่ ากับจํานวนนั น ดังตัวอย่ าง ้ ้ ต่ อไปนี ้ (10 คะแนน) Decimal Number: 14 Binary Number: 1110 1 2 3 4 5 Decimal Number: 345 Binary Number: 101011001 2. คําสั่งวนซําแบบเบืองต้ นด้ วยคําสั่ง for ้ ้ 1. คําสั่งวนซําด้ วยคําสั่ง for มี 3 ส่วนหลักเช่นเดียวกับคําสัง while ดังรูปแบบต่อไปนี ้ ้ ่ 1 for(Initial;Condition;Update) { 2 Statement(s); [1] ค่าตังต้ น (Initial) [2] เงื่อนไข (Condition) ้ 3 } และ [3] การเปลี่ยนรอบ (Update) ทัง้ 3 ส่วนนี ้ จะอยูภายในส่วนหัวของคําสัง for ทังหมด ่ ่ ้ ผังงาน ภายในคําสัง for ถ้ ามีเพียง 1 คําสังไม่ต้องมี ่ ่ Initial เครื่ องหมายปี กกาเปิ ดปิ ดก็ได้ พิจารณาเงื่อนไขของคําสัง for ว่าเป็ นจริ ง ่ False Update Condition หรื อไม่ ถ้ าเป็ นจริ งจะเข้ าทําคําสังทุกๆ คําสัง ่ ่ True ภายในคําสัง for และจะวนทํางานแบบนี ้ไป ่ Statement เรื่ อยๆ จนกว่าเงื่อนไขของคําสัง for จะเป็ นเท็จ ่ ก็จะจบการวนซํ ้า © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 8. 48 Computer Programming using Java 04 - Iteration Statements ตัวอย่ าง กําหนดค่าเริ่ มต้ นให้ ตวแปร i เท่ากับ 1 แล้ วทําการวนซํ ้า ั 1 2 for(int i = 1; i <= 5; i++) { System.out.print(i); เพื่อแสดงค่า i ตังแต่ 1 ถึง 5 โดยในแต่ละรอบการวนซํ ้า ้ 3 } จะเพิ่มค่า i ขึ ้นทีละ 1 ดังนันผลลัพธ์ที่ได้ คือ 12345 ้ โจทย์ ข้อที่ 12 [ระดับง่ าย] จงแสดงผลลัพธ์ จากส่ วนของโปรแกรมตามค่ า n ที่กาหนดให้ ต่อไปนี ้ (4 คะแนน) ํ 1 double c = 3.0; n = 3 n = 0 n = 1 n = 4 2 for(c = 1.0; c <= n; c += 0.1) 3 System.out.println(c++); 4 c++; 5 for(int i = 6; i > n; i--) { 6 System.out.print(i); 7 System.out.print(n++); 8 } โจทย์ ข้อที่ 13 [ระดับง่ าย] จงเขียนเฉพาะคําสั่ง for ตามเงื่อนไขต่ อไปนี ้ (10 คะแนน) 1) แสดงคําว่ า "Get A" ขึนบนจอภาพ 1000 ครัง (5 คะแนน) ้ ้ 2) แสดงเลขค่ ู 900 ตัวแรกออกทางจอภาพ (เริ่ มที่ 78) (5 คะแนน) 2. เปรียบเทียบคําสั่ง while และคําสั่ง for 1) คําสัง while และคําสัง for มีลกษณะการทํางานที่วนซํ ้าเหมือนกัน แต่มีรูปแบบขการเขียนที่แตกต่างกัน ่ ่ ั 2) คําสัง while ใช้ วนซํ ้าเมื่อไม่ทราบจํานวนรอบที่แน่ชด แต่คําสัง for ใช้ วนซํ ้าเมื่อทราบจํานวนรอบที่แน่ชด ่ ั ่ ั 3) การแปลงคําสัง while ให้ เป็ นคําสัง for ่ ่ 1 1 int i = 1; 1 for(int i = 1; i <= 5; i++) { 2 while(i <= 5) { 2 ... 3 ... 3 } 2 4 i++; 5 } 3 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 9. Iteration Statements - 04 Computer Programming using Java 49 โจทย์ ข้อที่ 14 [ระดับง่ าย] จงเขียนส่ วนของโปรแกรมภาษาจาวาเพื่อเปลี่ยนคําสั่ง while ในโจทย์ ข้อที่ 6 ถึง 9 ให้ เป็ นคําสั่ง for โดยไม่ ต้องเขียนโปรแกรมในส่ วนของการรั บค่ าและแสดงผล และสามารถเรี ยก ใช้ ตวแปรเดิมของการรั บค่ าได้ เลย แต่ ตวแปรอื่นๆ จะต้ องประกาศใหม่ ทงหมด (20 คะแนน) ั ั ั้ 1) แปลงเฉพาะคําสั่ง while ในโจทย์ ข้อที่ 6 ให้ เป็ นคําสั่ง for (5 คะแนน) 2) แปลงเฉพาะคําสั่ง while ในโจทย์ ข้อที่ 7 ให้ เป็ นคําสั่ง for (5 คะแนน) 3) แปลงเฉพาะคําสั่ง while ในโจทย์ ข้อที่ 8 ให้ เป็ นคําสั่ง for (5 คะแนน) 4) แปลงเฉพาะคําสั่ง while ในโจทย์ ข้อที่ 9 ให้ เป็ นคําสั่ง for (5 คะแนน) © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 10. 50 Computer Programming using Java 04 - Iteration Statements โจทย์ ข้อที่ 15 [ระดับง่ าย - ระดับยาก] จงเขียนเฉพาะคําสั่ง for เพื่อหาคําตอบของสมการต่ อไปนี ้ พร้ อม ทังประกาศตัวแปรทุกตัวที่เรี ยกใช้ งาน และห้ ามเรียกใช้ เมท็อดในคลาส Math (30 คะแนน) ้ 1) [ระดับง่ าย] 5 + 10 + 15 + ... + 40 (5 คะแนน) 2) [ระดับง่ าย] 1 + 8 + 27 + ... + 20 3 (5 คะแนน) 3) [ระดับปานกลาง] 1 + 3 + 7 + 15 + 31 + ... + (215 − 1) (5 คะแนน) 1 1 1 1 1 4) [ระดับปานกลาง] 1 + − + − + ... + (5 คะแนน) 2 3 4 5 30 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 11. Iteration Statements - 04 Computer Programming using Java 51 23 25 27 29 211 219 5) [ระดับยาก] 2 − + − + − + ... − (10 คะแนน) 3! 5! 7! 9! 11! 19! โจทย์ ข้อที่ 16 [ระดับปานกลาง] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรับตัวเลขจํานวนเต็ม 100 จํา- ู นวนทางแปนพิมพ์ แล้ วทําการหาค่ าสงสุด (Maximum) ค่ าตํ่าสุด (Minimum) และค่ าเฉลี่ย (Average) ของ ้ ู ตัวเลขทังหมด พร้ อมทังแสดงผลลัพธ์ ท่ ได้ ออกทางจอภาพ (10 คะแนน) ้ ้ ี 1 2 3 4 5 © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้
  • 12. 52 Computer Programming using Java 04 - Iteration Statements โจทย์ ข้อที่ 17 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มเข้ ามาทาง ู แปนพิมพ์ หนึ่งจํานวน แล้ วแสดงผลลัพธ์ ตามรปทรงต่ อไปนี ้ (10 คะแนน) ้ ู Number: 5 1 2 3 4 5 * ** *** **** ***** Number: 10 * ** *** **** ***** ****** ******* ******** ********* ********** โจทย์ ข้อที่ 18 [ระดับยาก] จงเขียนโปรแกรมภาษาจาวาที่สมบรณ์ เพื่อรั บตัวเลขจํานวนเต็มหนึ่งจํานวน ู ทางแปนพิมพ์ และทําการตรวจสอบว่ าตัวเลขดังกล่ าวเป็ นจํานวนเฉพาะหรือไม่ พร้ อมทังแสดงผลลัพธ์ ท่ ี ้ ้ ได้ ดงตัวอย่ าง ซึ่งจํานวนเฉพาะ คือ จํานวนที่ค่า 1 และตัวมันเองเท่ านันที่หารลงตัว (15 คะแนน) ั ้ 1 2 3 4 5 Number: 17 17 is a prime number Number: 45 45 is not a prime number © สงวนลิขสิทธิ์ พฤศจิกายน 2553 (ปรับปร ุงครังที่ 7 ฉบับใช้ติวภาค 2/2553) เรียบเรียงโดย วงศ์ยศ เกิดศรี (แบงค์) ้