мой вопрос по сути в названии.В основном я узнал, что в Java оператор && действует как короткое замыкание, поэтому, если первое условие оценивается как ложное, оно не смотрит на остальную часть выражения.Я предполагал, что это имело место в c ++, но я пишу немного кода, который сначала проверяет, что индекс не превысил размер списка, затем сравнивает этот индекс в списке с другим числом.Что-то вроде:
//let's say list.size()=4;
for(int i=0; i<10; i++)
{
if(i < list.size() && list.get(i) == 5)
//do something
...
}
Это не точный код, но он иллюстрирует суть.Я предполагаю, что, поскольку я> размер списка, вторая половина не будет оценена.Но похоже, что это все еще происходит, и я считаю, что это вызывает ошибку сегмента.Я знаю, что могу использовать вложенные ifs, но это такая бельмо на глазу и пустая трата места.Любая помощь?