Что значит выражение "-1" в циклах

Паразит

Участник
Сообщения
62
Реакции
1
Привет.
Что значит выражение "-1" в циклах?
И не только в циклах.

Часто я встречаю подобные конструкции.
VB.NET / VBA:
For i=0 To objMatches.Count-1
    Set objMatch = objMatches.Item(i)

VB.NET / VBA:
endPos = i - 1

VB.NET / VBA:
if(open<close && open!=-1)

Даже с поясняющим комментрарием
VB.NET / VBA:
postest = pos - 1; // - 1 for search not from current position

VB.NET / VBA:
return (-1);

VB.NET / VBA:
For i = 0 To editorsCount - 1

VB.NET / VBA:
if (i != -1

Что значат "-1" или "- 1"
Это же явно не математические действия, правильно?
 
VB.NET / VBA:
For i=0 To objMatches.Count-1
Это кусок от поиска через регулярные выражения.

objMatches.Count - содержит количество найденных элементов.
А поскольку в массивах отсчёт начинается не с 1, а с нуля,
то последний элемент массива равен не objMatches.Count, а на единицу меньше.

Образно говоря, диапазон 1...10 по кол-ву чисел = диапазону 0...9 (10 -1)
Код:
return (-1);
0 = false
Все, что не 0 - это true.
Если применить к нулю битовый NOT, то получим в битах все единички, что соответствует числу -1.
Т.е. -1 можно использовать как замену булевой константе true.
Но только не в WinAPI. Там true соответствует 1.

Все остальные цитаты кода нужно рассматривать в конкретном контексте.
 
А здесь, что это значит "-1"?
И что вообще значит выражение: "!==-1" ? Это значит, что оно не равно, или что оно не найдено?
JavaScript:
} else if (nonClosingTags.indexOf("|"+strInput.toLowerCase()+"|") !== -1) {
 
Это означает, что сперва проверяется равенство типов данных операндов, а затем проверяется на неравенство само значение (если первая проверка успешно пройдена).
Например, если бы левый операнд вернул null, то проверка вида null != -1 привела бы к критической ошибке в скрипте, в отличие от варианта null !== -1
 
Назад
Сверху Снизу