Четверг, 14 Ноября 2024, 20:57

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Будет ли работать такой синтаксис?
михаДата: Четверг, 14 Августа 2014, 19:41 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
В общем просто интересно, будет ли гм кушать такой синтаксис, мои личные тесты показали, что как то не особо, или я чего-то недопонял...

Цитата
do
{
код;
}
until (!place_free(ax,ay)||point_distance(ax,ay,obj_lol.x,obj_lol.y)>24)

Цитата
with obj_AAA&&obj_BBB
{
код;
}

Цитата
switch (var)
{
case 1..6: код;
case 7..67: код;
}

Цитата
if var=3||5||10 код;


Сообщение отредактировал миха - Четверг, 14 Августа 2014, 19:44
XDominatorДата: Четверг, 14 Августа 2014, 19:43 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Все куда проще.

Делаешь скрипт "ааа"

В него пишешь

Код
while(!place_free(ax,ay)||point_distance(ax,ay,obj_lol.x,obj_lol.y)>24)
{
do
}


Потом пишешь

Код
with(obj_aaa)
{
aaa();
}

with(obj_bbb)
{
aaa();
}


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)


Сообщение отредактировал XDominator - Четверг, 14 Августа 2014, 19:44
михаДата: Четверг, 14 Августа 2014, 19:48 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
XDominator, ты меня не понял) это все я знаю) у мен почему-то оно все некорректно работает.

Добавлено (14.08.2014, 19:46)
---------------------------------------------
эти куски кода никак не связаны, просто порой я использоал в коде такой синтаксис, и у меня никогда оно не работало

то есть допустим я пишу
Цитата
if var=3 || var=5 || var=10 код;

и оно работает.
а если так:
Цитата
if var=3||5||10 код;

не работает, и так во всех случаях


Сообщение отредактировал миха - Четверг, 14 Августа 2014, 19:49
XDominatorДата: Четверг, 14 Августа 2014, 20:22 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Естественно не работает. А в каком языке ты вообще такое видел?)

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
михаДата: Четверг, 14 Августа 2014, 20:28 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
XDominator, ну это было бы очень логично и удобно. Кстати вот это: 7..67 из паскальки
FolleahДата: Четверг, 14 Августа 2014, 20:52 | Сообщение # 6
Архитектор
Сейчас нет на сайте
Цитата миха ()
XDominator, ну это было бы очень логично и удобно. Кстати вот это: 7..67 из паскальки

Очень логично. Если в ЯП можно заменить булев тип цифрой (0 \ 1), то при проверке
Код
if(var == 5 || 1)

Получается следующее:
Код
if(var == 5 || TRUE)

В этом и смысл сей конструкции.


SaiteiДата: Четверг, 14 Августа 2014, 21:17 | Сообщение # 7
старожил
Сейчас нет на сайте
Folleah, Не знаю как в GML, но в С++ всё, отличное от "0" - истина.
Допустим if(2+2 == 4) верно, т.к. выражение true. Да и более чем уверен, что if(2) тоже будет true
XDominatorДата: Четверг, 14 Августа 2014, 22:27 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
Я понял о чем вы, да, действительно, если написать if(a == b||c) то это аналогично if((a == b) || c ), но я думаю что автор имел ввиду разделение именно значение равенства, то есть под if(a == 1||2||3) имелось ввиду if(a == 1||a == 2||a == 3), но в более сокращенной форме. Первое действительно имеет место быть в некоторых языках, и действительно все что не ноль, то истина.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
NiggaIncДата: Четверг, 14 Августа 2014, 22:42 | Сообщение # 9
был не раз
Сейчас нет на сайте
Чет вы фигню пишыте

Nigga inc. - профессиональный игровой бренд.

Сообщение отредактировал NiggaInc - Четверг, 14 Августа 2014, 22:42
SaiteiДата: Четверг, 14 Августа 2014, 22:52 | Сообщение # 10
старожил
Сейчас нет на сайте
Цитата NiggaInc ()
Чет вы фигню пишыте

Цитата NiggaInc ()
пишыте

biggrin
FolleahДата: Пятница, 15 Августа 2014, 05:10 | Сообщение # 11
Архитектор
Сейчас нет на сайте
Цитата XDominator ()
Я понял о чем вы, да, действительно, если написать if(a == b||c) то это аналогично if((a == b) || c ), но я думаю что автор имел ввиду разделение именно значение равенства, то есть под if(a == 1||2||3) имелось ввиду if(a == 1||a == 2||a == 3), но в более сокращенной форме. Первое действительно имеет место быть в некоторых языках, и действительно все что не ноль, то истина.

А как ЯПу различать то их? Вдруг я хочу с одной стороны оперировать интегером, а с другой - булевым значением?
Saitei, я не профи в плюсах, так что не знаю всех тонкостей. Но вообще, не знал, что любое число > 0 приравнивается к истине о_О




Сообщение отредактировал Folleah - Пятница, 15 Августа 2014, 05:11
XDominatorДата: Пятница, 15 Августа 2014, 07:49 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
Ну дело в том что ему не нужно различать. Я тебе приведу более понятный пример с логическим и вместо или, который по сути будет тоже самое что и тема обсуждения.
Конструкция if(a = b && c) (по сути та же if(a = b||c) только с другим оператором) аналогична конструкции

Код

if (a = b)
{
   if (c)
   {
    //actions
   }
}


но не конструкции
Код

if (a = b)
{
   if (a = c)
   {
    //actions
   }
}


с в данном случае может быть натуральным числом-истиной, как обсуждалось выше, либо результатом какого-нибудь ранее вычисленного выражения( типа с = x = y).


Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)


Сообщение отредактировал XDominator - Пятница, 15 Августа 2014, 07:51
goldsphereДата: Пятница, 15 Августа 2014, 09:48 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
А с чего автор, вдруг, взял, что такое будет работать? Так в уроках каких-то написано? Если не работает, значит подобный способ не уместен. Зачем такие глупые вопросы задавать?

FinderX - Android Аркада
-l33t-h4xx-Дата: Пятница, 15 Августа 2014, 10:01 | Сообщение # 14
участник
Сейчас нет на сайте
Никогда не пытайтесь угадывать синтаксис. Если этого нет в документации, значит так писать не стоит даже пытаться.

Как правильно задавать вопросы
михаДата: Пятница, 15 Августа 2014, 10:28 | Сообщение # 15
почти ветеран
Сейчас нет на сайте
Ребят, я просто стремлюсь к максимально рациональному и короткому коду, что тут такого?)
XDominatorДата: Пятница, 15 Августа 2014, 10:31 | Сообщение # 16
постоянный участник
Сейчас нет на сайте
Не слушай их. Эксперименты это всегда хорошо.

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
SaiteiДата: Пятница, 15 Августа 2014, 11:09 | Сообщение # 17
старожил
Сейчас нет на сайте
миха, код пишется в первую очередь для человека, а не машины. Он должен быть понятен человеку
FolleahДата: Пятница, 15 Августа 2014, 12:41 | Сообщение # 18
Архитектор
Сейчас нет на сайте
XDominator, у вас наигрубейшая ошибка синтаксиса, а вы еще пытаетесь что то мне доказать, лол.

XDominatorДата: Пятница, 15 Августа 2014, 16:34 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
Folleah, ну во первых, я никому и ничего не доказываю, а во вторых, где ошибка?

Ghaarp

The soul lighter(Android, logic)

Zzzzombie RAGE!!!(For android)
FolleahДата: Пятница, 15 Августа 2014, 16:56 | Сообщение # 20
Архитектор
Сейчас нет на сайте
Цитата XDominator ()
Folleah, ну во первых, я никому и ничего не доказываю, а во вторых, где ошибка?

Только слепой программист не заметит, что ты присваиваешь, а не сравниваешь. Это наигрубейшая ошибка - присваивание в if.


  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг