switch语句使用总结
程序里的if-else太多,代码显得乱、逻辑不清晰。这时使用switch语句代替if-else结构的语句是个不错的选择。
switch(表达式的值){
case值1 :
语句;
break;
case 值2 :
语句;
break;
case 值3 :
语句;
break;
default:
break;
}
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结构的语句是个不错的选择。