2013-12-19 5 views
3

Я сейчас в процессе создания моей первой игры на C++, и у меня есть if-statement, выглядящий примерно так, это довольно долго и неудобно, и я действительно думаю, что есть более короткий и более оптимальный способ сделать это, и это то, что мне нужно.Пытается оптимизировать мой if-statement

EDIT: Тип данных является неотъемлемой частью, извините за любое неудобство, вызванное этим вопросом. Я получил ответ, хотя так просто! Счастливых праздников!

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

является 'прямоугольником' интегралом? –

+1

Не уверен, почему все downvotes. Это похоже на разумный, если основной вопрос. –

+1

Если проверка диапазона с меньшим или большим, чем сравнение, нецелесообразна, проверьте ['std :: unordered_set'] (http://en.cppreference.com/w/cpp/container/unordered_set) – hyde

ответ

12

Try:

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 :: установлен для последнего для быстрого поиска. – drescherjm

+0

@drescherjim местность> O обозначение обычно. И 'unordered_set' будет быстрее:' set', только когда вы заботитесь о порядке. – Yakk

Смежные вопросы