Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 开关


开关语句

与其编写多个if..else语句,您可以使用switch语句。

switch语句选择要执行的多个代码块之一。

语法

switch (表达式) {
  case x
    // 代码块
    break;
  case y
    // 代码块
    break;
  default
    // 代码块
}

工作原理

  • switch表达式只求值一次。
  • 表达式的值与每个case的值进行比较。
  • 如果有匹配项,则执行关联的代码块。
  • break语句退出switch块并停止执行。
  • default语句是可选的,它指定在没有case匹配的情况下要运行的代码。

以下示例使用工作日编号来计算工作日名称。

示例

int day = 4;

switch (day) {
  case 1
    printf("星期一");
    break;
  case 2
    printf("星期二");
    break;
  case 3
    printf("星期三");
    break;
  case 4
    printf("星期四");
    break;
  case 5
    printf("星期五");
    break;
  case 6
    printf("星期六");
    break;
  case 7
    printf("星期日");
    break;
}

// 输出 "星期四" (第 4 天)
自己尝试 »

break 关键字

当 C 遇到break关键字时,它会退出switch块。

这将停止执行更多代码和块中的 case 测试。

当找到匹配项并且工作完成时,就该休息了。无需进行更多测试。

break 可以节省大量执行时间,因为它 "忽略" switch 块中所有其他代码的执行。



default 关键字

default关键字指定在没有case匹配的情况下要运行的代码。

示例

int day = 4;

switch (day) {
  case 6
    printf("今天是星期六");
    break;
  case 7
    printf("今天是星期日");
    break;
  default
    printf("期待周末");
}

// 输出 "期待周末"
自己尝试 »

注意:default关键字必须用作switch中的最后一个语句,并且不需要break。


C 练习

通过练习测试自己

练习

插入缺失的部分以完成以下开关语句

int day = 2;
switch () {
 1:
    printf("Monday");
    ;
 2:
    printf("Sunday");
    ;
}

开始练习



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.