switch语句使用总结
背景
程序里的if-else太多,代码显得乱、逻辑不清晰。这时使用switch语句代替if-else结构的语句是个不错的选择。
switch的语法如下
switch(表达式的值){
case值1 :
语句;
break;
case 值2 :
语句;
break;
case 值3 :
语句;
break;
default:
break;
}
switch语句注意事项
1)case标号必须是整型常量表达式,并且case标号不能具有相同的值,否则编译错误。
2)如果表达式的值与其中一个case标号的值匹配,则程序将从该标号后面的第一个语句开始依次执行各个语句,直到switch结束或遇到break语句位置。
3)如果所有case标号与switch表达式的都不匹配,并且default标号存在,则执行default标号后面的语句。
举例说明
下面的代码是根据返回值生成错误信息。代码是nginx模块中的代码。主要作用是根据retVal变量的值,根据其不一样的值生成不同的错误信息并返回。
int retVal = function();
ngx_str_t response=ngx_string("");
string error;
switch (retVal){
case -1:
error ="{\"result\":-1}";
break;
case -2:
error = "{\"result\":-2}";
break;
case 0:
error ="{\"result\":0}";
break;
case 1:
error= "{\"result\":1}";
break;
default:
break;
}
response.len = error.length();
response.data = (u_char *)error.c_str();
总结
使用switch语句代替if-else结构的语句是个不错的选择。