PDA

Просмотр полной версии : [Вопрос] Что будет быстрее работать?



StevenH
21.11.2015, 14:13
Всем привет. Что будет быстрее работать для 24/7, закусочных список товаров. Да и вообще что будет лучше??

1 код:


stock GetBusinessItem(b, i)
{
new ttextt[32];
switch(b)
{
case 1:
{
if(i == 0) ttextt = "Телефон\t\t\t{2BAB2B}170$";
if(i == 1) ttextt = "Телефонный номер\t\t{2BAB2B}300$";
if(i == 2) ttextt = "Телефонная книга\t\t{2BAB2B}250$";
if(i == 3) ttextt = "Букет цветов\t\t{2BAB2B}500$";
if(i == 4) ttextt = "Фотоаппарат\t\t\t{2BAB2B}500$";
if(i == 5) ttextt = "Маска\t\t\t{2BAB2B}230$";
if(i == 6) ttextt = "Аптечка\t\t\t{2BAB2B}340$";
}
/*case 2:
{
if(i == 0) ttextt = "Сотовый телефон";
if(i == 1) ttextt = "Телефонный номер";
}*/
}
return ttextt;
}


2 код:

new gShopObject[SHOP_OBJECTS][25] = {"Телефон","Номер SIM-карты","Аптечка","Часы","Букет цветов","Трость","Парашют","Маска","Фотоаппарат (50 cнимков)"};

#Vito
21.11.2015, 14:27
Естественно, 2-ой вариант лучше и быстрее.

- - - Добавлено - - -

И в след. раз, если будете проверять значение одной переменной более 2-ух раз, используйте switch. Тоесть:

switch(i)
{
case 0: ttextt = "Телефон\t\t\t{2BAB2B}170$";
case 1: ttextt = "Телефонный номер\t\t{2BAB2B}300$";
case 2: ttextt = "Телефонная книга\t\t{2BAB2B}250$";
case 3: ttextt = "Букет цветов\t\t{2BAB2B}500$";
case 4: ttextt = "Фотоаппарат\t\t\t{2BAB2B}500$";
case 5: ttextt = "Маска\t\t\t{2BAB2B}230$";
case 6: ttextt = "Аптечка\t\t\t{2BAB2B}340$";
}

StevenH
21.11.2015, 14:40
Естественно, 2-ой вариант лучше и быстрее.

- - - Добавлено - - -

И в след. раз, если будете проверять значение одной переменной более 2-ух раз, используйте switch. Тоесть:

switch(i)
{
case 0: ttextt = "Телефон\t\t\t{2BAB2B}170$";
case 1: ttextt = "Телефонный номер\t\t{2BAB2B}300$";
case 2: ttextt = "Телефонная книга\t\t{2BAB2B}250$";
case 3: ttextt = "Букет цветов\t\t{2BAB2B}500$";
case 4: ttextt = "Фотоаппарат\t\t\t{2BAB2B}500$";
case 5: ttextt = "Маска\t\t\t{2BAB2B}230$";
case 6: ttextt = "Аптечка\t\t\t{2BAB2B}340$";
}

Значит этот лучше всего юзать чем сток?

new gShopObject[SHOP_OBJECTS][25] = {"Телефон","Номер SIM-карты","Аптечка","Часы","Букет цветов","Трость","Парашют","Маска","Фотоаппарат (50 cнимков)"};

#Vito
21.11.2015, 14:54
Значит этот лучше всего юзать чем сток?

new gShopObject[SHOP_OBJECTS][25] = {"Телефон","Номер SIM-карты","Аптечка","Часы","Букет цветов","Трость","Парашют","Маска","Фотоаппарат (50 cнимков)"};
Да.

Daniel_Cortez
21.11.2015, 16:19
Да, к массиву доступ будет намного быстрее.
Правда, иногда бывают ситуации, когда можно выйти за его пределы. Например, в OnDialogResponse в теории можно подделать на стороне клиента номер выбранной строки в списке (listitem) - тогда нужно проверять, чтобы значение listitem было не больше максимального индекса в массиве.
Пример:


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if (dialogid == MY_LIST)
{
static const lines[][10] =
{
{"строка 1"},
{"строка 2"},
{"строка 3"},
{"строка 4"},
{"строка 5"},
{"строка 6"},
{"строка 7"},
{"строка 8"},
{"строка 9"},
{"строка 10"},
};
if(listitem >= sizeof(lines))
listitem = sizeof(lines) - 1;
new string[64];
format(string, sizeof(string), "Вы выбрали строку №%d, содержимое: %s.", listitem, lines[listitem]);
return SendClientMessage(playerid, -1, string);
}
}