說在運行時我建立了一些事件與發生次數。現在我在系統中有一些實體,我需要確定哪些實體受到這些事件的影響。是否有基於範圍的類似案例控制結構
因此,作爲一個例子說,我有:
- ENTITY1在時間1
- EventRed發生在時間3
- ENTITY2在時間初始化intialized 8
- EventBlue發生在時間9
- EventYellow發生在時間11
- ENTITY3初始化在時間13
這將導致:
- ENTITY1是白色
- ENTITY2是綠色
- ENTITY3是黑色
我想case
式的控制結構要做到這一點,它支持通過秋季和誰的情況被評價爲「大於或等於該值」。我喜歡這樣的語法:
for(auto& i : Entity) {
?switch(i.GetInitializedTime()) {
?case(Red.GetOccuranceTime()):
i.AddRed();
?case(Blue.GetOccranceTime()):
i.AddBlue();
?case(Yellow.GetOccuranceTime()):
i.AddYellow();
}
}
有沒有像這樣的控制結構,或者我必須玩弄所有的if語句?
當我第一次看到這個語法時,我非常困惑:'case 0x20 ... 0xFF:',但我不確定它是否是GCC特定的擴展。 –
對於你在示例中需要的內容,這是不可能的,因爲在編譯時需要知道case標記跳轉標記。 –
@πάνταῥεῖ:它是一個擴展名:https://gcc.gnu.org/onlinedocs/gcc/Case-Ranges.html –