Switch-Case语句
switch-case 条件表达式替换 if-else 表达式 。其由switch和数个case部分组成,switch部分内是对整型结果进行评估的表达式,而case部分就可能出现的整型结果和相应的动作进行定义。此语句比 if-else语句的效果更高,在测试的表达式会返回一个整数并且基于表达式的结果会生成多个分支结构的情况下优先使用switch-case表达式。
语法
switch(expression) {
case constant:
// some_code;
break;
// …;
default:
// some_code;
break;
}
部分
示例
enum {
THREE = 3,
};
switch(6 * 1) {
case 1:
log.message("one\n");
break;
case 2:
log.message("two\n");
break;
case THREE:
log.message("three\n");
break;
case 4:
case 5:
log.message("four, five\n");
break;
default:
log.message("default\n");
break;
- 在"default"与冒号之间无空白区域,同样在脚本内不应有其它带有"default"的标签。
- 用于 case类比的值为预编译值,因此如果导出的变量在类比中被当作常量使用而且使用了C++代码对此变量的值作出了更改,这种情况下会使用旧值。
可将typeid(variable_type) 作为常量在switch中的一个case中进行使用。函数会检查变量是否是某种指定的类型并执行对应的操作。
Variable data = node.getData();
switch(typeid(data)) {
case typeid(int):
log.message("int\n");
break;
case typeid(float):
log.message("float\n");
break;
case typeid(vec3):
log.message("vec3\n");
break;
case typeid(vec4):
log.message("vec4\n");
break;
case typeid(string):
log.message("string\n");
break;
}
最新更新: 2017-07-03
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)