版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
CSDN大牛较多,本人小白,若交流,本人欢迎,若言语偏颇,请绕行。
这二天,工作比较空闲,就看了一些基础的C++语法知识,收获颇多,下面只讲switch case语句的一些语法细节。请大家坚持看完,第五大点是重点,经测试连C++ Primer都给出了错误的讲解。若为大牛,请直接拖到文章最后看最后一大点。
一、case标号内是否可以使用continue代替break?
答案是否定的。continue只用于循环语句中,作用是中止本次循环;break语句才能中断switch case控制流(return、goto等且不算作正常的中断)。
二、default只可以写在所有case标号之后吗?
答案也是否定的。default可以写在任何位置且作用不变,只是看起来很别扭而已,你可以理解default是一个特别的case,并不代表着一个switch的结束。
这是新手经常会误解的知识点,总觉得default之后,switch就结束了,这是一种固定思维带来的错误推断。
三、下面的代码是正确的吗?
char ch;
switch(ch)
{
case:
default:
}
答案是不正确。一个标号不能独立不能独立存在,它必须位于语句之前。如果是空语句,你写成如下形式。
char ch;
switch(ch)
{
case:
;
default:
{} // ;,{}可以互换
}
四、下面的代码是正确的吗?若正确,执行结果是什么?若不正确,为什么?
char ch = 'f';
switch(ch)
{
default:
cout