Page cover image

Jump Statement

ชัชวาล แผ่เรืองรัตน์ 650710536

What is Jump Statement

คือ คำสั่งที่ใช้ควบคุมลำดับการทำงานในการเขียนโปรแกรม โดยสามารถโอนย้ายการควบคุมนั้นไปยังส่วนอื่นของโค้ดได้ Jump Statement มีคำสั่งที่ใช้งานดังนี้ break ,continue, return, และ goto แต่ละคำสั่งมีวัตถุประสงค์ที่ต่างกัน ดังนี้


Break

ยุติการทำลูปหรือออกจากคำสั่ง switch แล้วเปลี่ยนการควบคุมไปยังคำสั่งที่อยู่ถัดจากลูปหรือ switch block นั้นทันที

using System;
class Program{
    static void Main()
    {
        for (int i = 1; i < 10; i++){
            if (i == 9){
                break;
            }
            Console.WriteLine($"Test {i} Completed");
        }
    }
}

Continue

ข้ามคำสั่งการทำงานที่เหลือของลูปในรอบนั้นทันทีและเริ่มทำงานรอบถัดไปของลูปนั้น

using System;
class Program{
    static void Main()
    {
        for (int i = 0; i < 5; i++)
        {
            Console.Write($"Row {i}: ");
            
            if (i < 3){
            Console.WriteLine("Test");
            continue;
        }
            Console.WriteLine("Continue");
        }
    }
}

Return

ยุติการทำงานของฟังก์ชัน และเรียกคืนค่ากลับตามที่กำหนดไว้

using System;
class Program{
    static int Sum(int a, int b){
            return a + b;
    }
    static void Main()
    {
        Console.WriteLine($"Number after Sum : {Sum(55,12)}"); 
    }
}

Goto

เปลี่ยนการควบคุมไปยังคำสั่งที่มีการกำกับไว้ภายในฟังก์ชันหรือบล็อกเดียวกันแบบไม่มีเงื่อนไข ถึงแม้ว่าจะมีประโยชน์ แต่อาจก่อให้เกิดปัญหาได้ นั่นคือ มีความซับซ้อนในการอ่านโค้ด และบำรุงรักษายาก

using System;
class Program{
    static void Main() {
    for(int i = 1; i <= 10; i++) {

      if(i == 8) {
        goto Exit;
      }

      Console.WriteLine($"Loop {i}");
    }

    Exit:
      Console.WriteLine("No more Loop");
    }
}

เปรียบเทียบกับภาษาอื่น

Java

ในส่วนของภาษา java นั้นจะไม่มี คำสั่ง goto แต่สามารถ ใช้ break เป็นเหมือน goto ในอีกรูปแบบนึงได้ แต่คำสั่งอื่นเช่น break continue return ยังคงมีเหมือนเดิม

และนี่คือตัวอย่างของ การใช้ break แทน goto

Syntax : break label;

import java.io.*; 
class break_statement_goto
{
public static void main(String[] args)
{
 label_1:
  {
  label_2:
   {
    label_3:
    {
     for(int i=0; i<100; i++)
      {
       System.out.println("i=" + i);
       System.out.println("Inside Label_3");
        if (i==3)
        break label_3;
      }
     }
      System.out.println("Inside Label_2");
    }
      System.out.println("Inside Label_1");
  }
 }
}

ในส่วนของ Output นั้น จะเห็นได้ว่ามีบอกอยู่ว่า i มีค่าเท่าไหร่นะตอนนั้น เมื่อ i ครบถึงสามตามที่กำหนด

ใน if จะทำการ break label_3 จึงทำให้ลูปนั้นจบลง แล้ว Output ที่เหลือก็จะเป็น label_2 และ label_1


Python

ในภาษา Python นั้นก็ไม่มีคำสั่ง goto เช่นกัน แต่มีคำสั่ง Pass แทน ซึ่งทำงานไม่มีเหมือนกับ goto

Pass

ในส่วนของคำสั่ง Pass นั้น สามารถเรียกได้อีกอย่างหนึ่งว่า คำสั่ง null เนื่องจากว่าเมื่อเรานั้นไม่แน่ใจหรือไม่อยาก รัน code ในส่วนนี้ จึงสามารถใช้คำสั่งนี้ได้

# Python program to show how to use a pass statement in a for loop  
'''''คำสั่ง pass นั้นเป็นเหมือน placeholder. สามารถมาเติมข้อมูลใส่ภายหลังได้'''  
sequence = {"Python", "Pass", "Statement", "Placeholder"}  
for value in sequence:  
    if value == "Pass":  
        pass # ปล่อยบล็อกนี้ว่างไว้ ถ้าต้องการใช้ คำสั่ง pass  
    else:  
        print("Not reached pass keyword: ", value)

placeholder คือตำแหน่งที่เราจะจองไว้สำหรับการแทรกค่าที่จะนำมาในภายหลัง


C

ภาษา C นั้น มีคำสั่ง Break ,Continue ,Return และ Goto เหมือนกับ C#


Video Presentation


Slide Presentation


Reference

สำหรับความหมายของ Jump Statement
ความหมายของแต่ละคำสั่ง
ตัวอย่างและวิธีใช้งาน goto ในรูปแบบของ break ใน Java
คำสั่งของ Jump Statement ใน Python
ความหมายและวิธีใช้งาน pass ใน Python

Last updated