PDA

Просмотр полной версии : [Вопрос] Проверка циклом



DmX
24.10.2015, 21:47
Господа гуру подскажите ка мне в моей проблеме.



//Идет тут код
error(playerid,"0");
for(new idxx = 0; idxx <= TOTALFAM; idxx++)
{
if(FamInfo[idxx][fNaz] == strval(inputtext))
{
error(playerid,"Это название уже есть");
break;
}
new asd[24];
format(asd, sizeof(asd), "%s",FamInfo[idxx][fNaz]);
SCM(playerid, COLOR_OFF, asd);
}
error(playerid,"2");

Как мне сделать так, что бы код вообще дальше не шел? Если if(FamInfo[idxx][fNaz] == strval(inputtext))

$continue$
24.10.2015, 22:36
У Вас все должно работать.
Специально для Вас воспроизвел задачу:

http://i.imgur.com/2nbKzuy.png

DmX
24.10.2015, 22:39
Как мне сделать так, что бы код вообще дальше не шел? Если if(FamInfo[idxx][fNaz] == strval(inputtext))

$continue$
24.10.2015, 22:46
Цикл (программирование) (https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29), досрочный выход из цикла (https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29#.D0.94.D0.BE.D1.81.D1.80.D0.BE.D1.87.D0.BD.D1.8B.D0.B9_.D0.B2.D1.8B.D1.85.D0.BE.D0.B4_.D0.B8.D0.B7_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0), оператор ветвления (https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D0%B2%D0%B5%D1%82%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#C.2C_C.2B.2B_.D0.B8_.D0.B8.D1.85_.D0.BF.D0.BE.D1.82.D0.BE.D0.BC.D0.BA.D0.B8)

http://i.imgur.com/YZRKD78.png

Как Вам ещё помочь?

DmX
24.10.2015, 22:52
Давай словами объясню.

После цикла если равеноство, у меня продолжается идти код, выполняется дальше всё.

(Код)

Это действие ( Если переменная == переменной) то код ниже выполнятся не должен! Типо как return true;

(Код)

Как мне это сделать в цикле? Мне нужно что бы после цикла код не шёёёл!

$continue$
24.10.2015, 23:00
До сих пор не пойму в чем проблема...

http://i.imgur.com/JqZvRXF.png

DmX
24.10.2015, 23:07
Проблемыы неееееееееееееет!!!!!!!!!!

Мне нужно, что бы код дальше не шел после цикла, если переменные будут равныыы!

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



new i = 0;
error(playerid,"0");
for(new idxx = 0; idxx <= TOTALFAM; idxx++)
{
if(FamInfo[idxx][fNaz] == strval(inputtext))
{
error(playerid,"Это название уже есть");
i = 1;
break;
}
new asd[24];
format(asd, sizeof(asd), "%s",FamInfo[idxx][fNaz]);
SCM(playerid, COLOR_OFF, asd);
}
error(playerid,"2");
if(i == 1) return true;


Что-то типо этого, только нет упрощенного варианта?

$continue$
24.10.2015, 23:08
Проблемыы неееееееееееееет!!!!!!!!!!

Мне нужно, что бы код дальше не шел после цикла, если переменные будут равныыы!

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



new i = 0;
error(playerid,"0");
for(new idxx = 0; idxx <= TOTALFAM; idxx++)
{
if(FamInfo[idxx][fNaz] == strval(inputtext))
{
error(playerid,"Это название уже есть");
i = 1;
break;
}
new asd[24];
format(asd, sizeof(asd), "%s",FamInfo[idxx][fNaz]);
SCM(playerid, COLOR_OFF, asd);
}
error(playerid,"2");
if(i == 1) return true;


Что-то типо этого, только нет упрощенного варианта?

Соблюдайте спокойствие.
А теперь где Вы видите, что цикл идет дальше?

DmX
24.10.2015, 23:18
:fool:

$continue$
24.10.2015, 23:22
:fool:

Что не так то? Как вы заказали - так и получили

DmX
24.10.2015, 23:34
Что не так то? Как вы заказали - так и получили

>><<

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

Уже сам решил вопрос. Закрыто

$continue$
24.10.2015, 23:38
Решением не поделитесь?

DmX
24.10.2015, 23:43
Решением не поделитесь?

Сделал по принципу, который я привел в постах выше.

bredvix
26.10.2015, 23:49
return false; в конец функции вставь, если не желаешь того, чтобы функция запрашивалась снова.