2013-12-19 42 views
3

我目前正在用C++创建我的第一个游戏,并且我有一个if语句,看起来像这样,这很长,不方便,我真的认为有一个更短,更优化的做法,这就是我需要的帮助。试图优化我的if语句

编辑:数据类型是一个不可分割的部分,对于这个问题带来的任何不便表示抱歉。尽管答案很简单,但我得到了答案!节日快乐!

if (rectangle == 1 || 
    rectangle == 2 || 
    rectangle == 3 || 
    rectangle == 4 || 
    rectang... and so on 
+0

是'rectangle'积分? –

+1

不知道为什么所有的downvotes。这似乎是一个合理的,如果基本的问题。 –

+1

如果使用小于/大于比较的范围检查是不实际的,那么请查看['std :: unordered_set'](http://en.cppreference.com/w/cpp/container/unordered_set) – hyde

回答

12

尝试:

if(rectangle >= 1 && rectangle <= maxRectangle) 
    doSomething(); 
+2

不能相信我自己没有想到这个!尽管如此,谢谢。 – Hummelmannen

+1

不是问题...乐意帮忙!节日快乐! – godel9

+0

从技术上讲,这个答案不能被认为是正确的,因为我们不知道“矩形”是整数类型。 – JBentley

5
if (rectangle >= 1 && rectangle <= n) 

应该是最容易的事情。

1

没有足够的信息来正确理解您的问题。

但是,如果你正在测试,看看它是不是0

if(rectange) 
//logic 

如果您正在测试,看看它的一些范围

//range1-100 
if(rectange && rectange < 101) 

之间如果您正在测试一组特定的数字

int acceptableNumbers[100]; 
//assume some numbers are filled into this array 

for(int i = 0; i < 100; i++) 
{ 
    if(rectange == acceptableNumbers[i]) 
      //Logic 
} 
+0

对不起,我编辑了第一篇文章。无论如何谢谢你! – Hummelmannen

+0

嗯也许某种类型的std :: set用于快速查找的最后一个。 – drescherjm

+0

@drescherjim位置> O符号通常。而'unordered_set'会更快:只有当你关心订单时才设置'set'。 – Yakk