c# - 为什么我们在 case 控制指令中使用 ' : ' 而不是 ' ; '?

标签 c# c switch-statement case-statement

我需要知道为什么我们在关键字 case 上使用冒号在c编程中而不是分号?

/*valid statement*/
case 1:
   do this;
case 2:
   do this;

/*why is invalid to write */

case 1;
    do this;
case 2;
    do this;

请帮帮我

最佳答案

为什么 case 行不应以分号结束

在基于 C 的语言中,分号具有作为“语句终止符”的特定功能。这意味着分号标记特定代码语句的结束和另一个代码语句的开始。有关详细信息,请参阅 this quora post .

因此,如果每个 case 行后面有一个分号,编译器会将它们全部解释为单独的单独语句。这就像写:

do case 1;
do this;
do case 2;
do this;

编译器将这些视为单独的“正常”代码行。然后它可能会编译失败,因为 case 关键字是专门保留的,仅供在 switch 语句中使用。

<小时/>

至于为什么选择 : 字符用于此特定目的:正如 Luca_65 提到的,该案例隐藏了 goto 标签语句。 C 语言中使用冒号为 label a section of code ,并且这种语法一直延续到它的衍生语言中。

正如 Bobby Speirs 指出的那样,最初选择该字符可能是因为冒号在英语语法中具有相似的含义。

关于c# - 为什么我们在 case 控制指令中使用 ' : ' 而不是 ' ; '?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44340410/

相关文章:

c# - 在C#中执行代码之前如何获得最大值?

c - 将结构作为指针传递,导致数组损坏?

c# - 为什么MySqlParameter Add parameter as 0转换为null

c# - 这是复制类(class)的好方法吗?

c# - 嵌入式 Outlook View 控件

c - 如何使用 fopen 打开用户指定名称的文件?

c - 进程如何知道它何时进入后台?

c# - 为什么 SWITCH 和 IF 在变量赋值方面不同

javascript - 使用 $_POST[] 调节 JavaScript 开关

java - 我的输出卡在同一件事上