логическое или - || - как правильно указать ?

Short Circuit
Short Circuit аватар
Offline
Зарегистрирован: 17.05.2015


String Numer1;
String Numer2;
Numer1=val.substring(0, 10);
if (val.indexOf((Numer1) || (Numer2)) > -1)

выше не пример не работает, тоесть сравнение игнорируется.
работает только - if (val.indexOf(Numer1) > -1)

вариант if (val.indexOf(Numer1) || (Numer2) > -1) - тоже пробовал.
как нужно правильно сравнить??

компилятся оба варианта.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Не?

if (val.indexOf(Numer1) > -1 || val.indexOf(Numer2) > -1)

Или

if ((val.indexOf(Numer1) > -1) || (val.indexOf(Numer2) > -1))

 

Short Circuit
Short Circuit аватар
Offline
Зарегистрирован: 17.05.2015

похожее вроде тоже пробовал, перепроверю.

просто думал - может у меня какая глобальная ошибка?

a5021
Offline
Зарегистрирован: 07.07.2013

Так как это "ИЛИ", то после первого TRUE остальные проверки делать нет никакого смысла. Компилятор их и не делает.

Short Circuit
Short Circuit аватар
Offline
Зарегистрирован: 17.05.2015

..   честно - не понял, почему не делает?? ведь другие примеры с или работают?

 

даже если один Numer верный а второй нет, то строку с if  оно просто игнорирует и там ничего не выполняется, не понимаю почему. ощущение, что никак не сравнивает, вообще.

a5021
Offline
Зарегистрирован: 07.07.2013

Разверните в качестве эксперимента знак больше на меньше. Тогда для данного конкретного кода и второе условие начнет проверяться.

nik182
Offline
Зарегистрирован: 04.05.2015

А что вы хотите сравнить? Что то мне подсказывает, что конструкция в строке 4 складывает два адреса, апотом уже с полученным что то делает.