คำสั่ง switch จะถูกใช้ในกรณีใด

ฟังก์ชัน SWITCH จะประเมินค่าหนึ่งค่า (เรียกว่า นิพจน์ ) ตามรายการของค่า และส่งกลับผลลัพธ์ที่สอดคล้องกันไปยังค่าที่ตรงกันค่าแรก ถ้าไม่ตรงกัน อาจจะมีการส่งกลับค่าเริ่มต้นเพิ่มเติม

หมายเหตุ: ฟีเจอร์นี้พร้อมใช้งานบน Windows Mac ถ้าคุณมีOffice 2019 หรือถ้าคุณมีMicrosoft 365การสมัครใช้งาน ถ้าคุณเป็นสมาชิก Microsoft 365ตรวจสอบให้แน่ใจว่าคุณมี Office เวอร์ชันล่าสุด

รายละเอียดด้านเทคนิค

ไวยากรณ์

SWITCH(นิพจน์, ค่า 1, ผลลัพธ์ 1, [ค่าเริ่มต้นหรือค่า 2, ผลลัพธ์ 2],…[ค่าเริ่มต้นหรือค่า 3, ผลลัพธ์ 3])

อาร์กิวเมนต์

คำอธิบาย

นิพจน์
(ต้องระบุ)

นิพจน์เป็นค่า (เช่นตัวเลข วันที่ หรือข้อความ) ที่มีไว้สำหรับเปรียบเทียบกับ ค่า 1…ค่า 126

ค่า 1…ค่า 126

ค่า N คือค่าที่จะเปรียบเทียบกับนิพจน์

ผลลัพธ์ 1…ผลลัพธ์ 126

ผลลัพธ์ N เป็นค่าที่จะถูกส่งกลับเมื่ออาร์กิวเมนต์ valueN ที่สอดคล้องตรงกับนิพจน์ ResultN และ must be supplied for each corresponding valueN argument.

ค่าเริ่มต้น
(ใส่หรือไม่ก็ได้)

ค่าเริ่มต้นเป็นค่าที่จะส่งกลับในกรณีที่ไม่พบค่าที่ตรงกันในนิพจน์ ค่า N อาร์กิวเมนต์ เริ่มต้น ถูกระบุโดยไม่มีนิพจน์ resultN ที่สอดคล้องกัน (ดูตัวอย่าง) ค่าเริ่มต้นต้องเป็นอาร์กิวเมนต์สุดท้ายในฟังก์ชัน

เนื่องจากฟังก์ชันถูกจำกัดไว้ที่ 254 อาร์กิวเมนต์ คุณสามารถใช้อาร์กิวเมนต์ค่าและผลลัพธ์ได้ถึง 126 คู่

ภาพรวม

ในรูปแบบที่ง่ายที่สุด ฟังก์ชัน SWITCH จะระบุว่า:

  • =SWITCH(ค่าที่จะสลับ, ค่าที่จะจับคู่1...[2-126], ค่าที่จะส่งกลับหากมีค่าที่ตรงกัน1...[2-126], ค่าส่งกลับหากไม่มีค่าที่ตรงกัน)

ซึ่งคุณสามารถประเมินการจับคู่ได้สูงสุด 126 ค่าและผลลัพธ์

ดูสูตรต่อไปนี้:

คำสั่ง switch จะถูกใช้ในกรณีใด
  1. ค่าที่จะสลับใช่หรือไม่ ในกรณีนี้ WEEKDAY(A2) เท่ากับ2

  2. คุณต้องการจับคู่ค่าใด ในกรณีนี้ คือ 1, 2 และ 3

  3. ถ้าตรงกัน คุณต้องการให้ผลลัพธ์เป็นผลลัพธ์อย่างไร ในกรณีนี้ จะเป็นวันอาทิตย์ที่ 1, วันจันทร์ที่ 2 และ วันอังคาร for 3

  4. ค่าเริ่มต้นเพื่อส่งกลับถ้าไม่พบรายการที่ตรงกัน ในกรณีนี้ เป็นข้อความ "ไม่ตรงกัน"

    หมายเหตุ: ถ้าไม่มีค่าที่ตรงกัน และไม่มีอาร์กิวเมนต์เริ่มต้น ฟังก์ชัน SWITCH จะส่งกลับฟังก์ชัน #N/A! เป็นข้อผิดพลาด

ตัวอย่าง

คุณสามารถคัดลอกข้อมูลตัวอย่างในตารางต่อไปนี้และวางในเซลล์ A1 ของเวิร์กชีตExcelใหม่เพื่อดูการใช้ฟังก์ชัน SWITCH ถ้าสูตรไม่แสดงผลลัพธ์ คุณสามารถเลือกสูตร แล้วกดF2 > Enter ถ้าคุณต้องการ คุณสามารถปรับความกว้างของคอลัมน์เพื่อดูข้อมูลทั้งหมดได้

Prerequisite - Switch Statement in C Switch is a control statement that allows a value to change control of execution…

www.geeksforgeeks.org

Interesting facts about switch statement in C

Switch เป็นคำสั่งควบคุมที่อนุญาตให้ค่าเปลี่ยนการควบคุมการดำเนินการ ต่อไปนี้เป็นข้อเท็จจริงที่น่าสนใจเกี่ยวกับคำสั่ง switch (เปลี่ยน)

  1. นิพจน์ที่ใช้ใน switch จะต้องเป็นประเภทหนึ่ง (int, char และ enum) ไม่อนุญาตให้ใช้ประเภทอื่นในการแสดงออก
// float is not allowed in switch#include <stdio.h>
int main(){
float x = 1.1;
switch (x){
case 1.1: printf("Choice is 1");
break;
default: printf("Choice other than 1, 2 and 3");
break;
}
return 0;
}
Output: Compiler Error: switch quantity not an integer

ใน Java อนุญาตให้ใช้สตริงได้ในสวิตช์ (ดูที่นี่)

2. ข้อความทั้งหมดที่ตามหลังตัวพิมพ์ที่ตรงกันดำเนินการจนกว่าจะถึงคำสั่ง break

// There is no break in all cases (ไม่มีการหยุดพักในทุกกรณี)#include <stdio.h>
int main(){
int x = 2;
switch (x){
case 1: printf("Choice is 1\n");
case 2: printf("Choice is 2\n");
case 3: printf("Choice is 3\n");
default: printf("Choice other than 1, 2 and 3\n");
}
return 0;
}
Output:
Choice is 2
Choice is 3
Choice other than 1, 2 and 3

// There is no break in some cases (ไม่มีการหยุดพักในบางกรณี)#include <stdio.h>
int main(){
int x = 2;
switch (x){
case 1: printf("Choice is 1\n");
case 2: printf("Choice is 2\n");
case 3: printf("Choice is 3\n");
case 4: printf("Choice is 4\n");
break;
default: printf("Choice other than 1, 2, 3 and 4\n");
break;
}
printf("After Switch");
return 0;
}
Output:
Choice is 2
Choice is 3
Choice is 4
After Switch

3. บล็อกเริ่มต้นสามารถวางได้ทุกที่ ตำแหน่งเริ่มต้นไม่สำคัญว่าจะยังคงดำเนินการหากไม่พบที่ตรงกัน

// The default block is placed above other cases.
(บล็อกเริ่มต้นถูกวางไว้เหนือกรณีอื่นๆ)
#include <stdio.h>
int main(){
int x = 4;
switch (x){
default: printf("Choice other than 1 and 2");
break;
case 1: printf("Choice is 1");
break;
case 2: printf("Choice is 2");
break;
}
return 0;
}
Output: Choice other than 1 and 2

4. นิพจน์ที่สำคัญที่ใช้ใน ป้ายกำกับ จะต้องเป็นนิพจน์คงที่

// A program with variable expressions in labels
โปรแกรมที่มีนิพจน์ตัวแปรในป้ายกำกับ
#include <stdio.h>
int main(){
int x = 2;
int arr[] = {1, 2, 3};
switch (x){
case arr[0]: printf("Choice 1\n");
case arr[1]: printf("Choice 2\n");
case arr[2]: printf("Choice 3\n");
}
return 0;
}
Output:Compiler Error: case label does not reduce to an integer constant

5. ข้อความที่เขียนไว้ด้านบนจะไม่ถูกดำเนินการหลังจากคำสั่งสวิตช์การควบคุมการถ่ายโอนไปยังกรณีที่ตรงกันคำสั่งที่เขียนก่อนกรณีจะไม่ถูกดำเนินการ