ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
switch语句提供一个 if 语句的替代方案,反复比较某个值得相等行。例如,可能使用一个整数标识来存储一个实际的状态,然后根据不同的标识执行不同的任务。如果标识的值可以示任何从0到255的数值,那么你可能需要大量的 else if 语句。switch 语句可以使这个代码更加简化易读。 ~~~ switch ( myValue ) { case val1: // do code case val2: // do code ... } ~~~ 可以提供很多 case 语句,就像else if 一样,便于进行比较。每个 case 关键字都提供对比的值,并以冒号结束行,以此表示case 结束然后开始匹配的执行代码块。如果最后增加一个 else 语句来提供应对的条款,在switch中应该使用 default 关键字: ~~~ switch ( myValue ) { case val1: // do code 、 case val2: // do code ... default: // if all else fails, do this } ~~~ 当一个switch语句被执行,虚拟机执行代码会比对指定的值查看所有的case ,直到找到匹配项或者到达了switch的尾部。在许多语言中,一旦一个匹配被发现,接下来的代码呗执行,而其他的case的代码块都会被执行即使case的对比没有匹配,然后继续下一个,直到到底switch的尾部,或者遇到一个break关键字。在Haxe中,事实并非如此。只有相关case的代码,即拥有匹配值得会被执行。一旦这发生了,switch语句自动退出,回到其他的应用部分。不需要break关键字,事实上,提供一个break到switch语句会引起一个Break in loop的编译器错误,因为brfeak关键字不是和switch或者case关键字关联。这个好处是,默认的default case 不必须在switch尾部退出case列表,而且可以放在列表中的任何位置。 如果你需要代码块在多个不同的case语句执行,建议提供一个函数作为执行代码,以方便在一个地方维护逻辑。