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