Итерация полностью через массив Java перед выполнением другой части условия - PullRequest
0 голосов
/ 15 ноября 2011

Итак, проблема, с которой я сталкиваюсь, заключается в том, что я хочу проверить каждую часть массива на соответствие условию, и если ВСЕ части массива возвращают false, я хочу что-то сделать, но если какая-либо из них вернет true, я хочу сделать что-нибудь еще Например

  String[] arr = new String[8];
  for(String s : arr) {
    if(s.equalsIgnoreCase("example") {
      // Do this
    } else {
      // do that
    }
  }

Проблема с вышесказанным заключается в том, что он будет делать это или делать это для всех 8 частей массива. Я хочу, чтобы все они проверили, и если они все ложные, сделайте это, но если кто-то из них правдив, то сделайте это.

Ответы [ 3 ]

5 голосов
/ 15 ноября 2011
String[] arr = new String[8];
boolean isAllGood = true;
for(String s : arr) {
    if(!s.equalsIgnoreCase("example") {
        isAllGood = false;
        break;  
    } 
}

if(isAllGood) {
    //do this
} else {
    //do that
}
3 голосов
/ 15 ноября 2011

Предыдущий ответ имеет условия в обратном направлении.Это было тестирование, если ЛЮБОЙ ЛОЖЬ, «Делай это» и если ВСЕ ИСТИНА «Делай это».Попробуйте этот код:

String[] arr = new String[8];
boolean found = false;
for(String s : arr) {
    if(s.equalsIgnoreCase("example")) {
        found = true;
        break;
    }
}
if(found) {
    // Do this
} else {
    // Do that
}
0 голосов
/ 15 ноября 2011

Вы должны извлечь цикл в другую функцию, скажем, isSomeCondition (String [] someArr)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...