我需要知道为什么我们在关键字 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/