Как отметить то, при котором я что-то = истина - PullRequest
0 голосов
/ 10 февраля 2011
  for (int i=1;i<10;i++)
  {
        if something == true
            do something
        else 
            do something
  }

Вот что я хочу сделать: вне цикла Для, мне нужно суммировать то, при котором я something = true и при котором я something = false.

Ответы [ 4 ]

6 голосов
/ 10 февраля 2011
List<Integer> positiveResults = new ArrayList<Integer>();
List<Integer> negativeResults = new ArrayList<Integer>();

for (int i = 1; i < 10; i++)
{
    if (someCondition)
        positiveResults.add(i);
    else
        negativeResults.add(i);
}

где someCondition - это переменная или выражение boolean.

Если вы явно хотите получить результаты в массиве вместо List, добавьте

Integer[] resultsInArray = positiveResults.toArray(
        new Integer[positiveResults.size()]);
1 голос
/ 10 февраля 2011

Вы, кажется, неправильно настроили свой цикл for, условный оператор должен быть посередине:

for (int i = 1; i < 10; i++)

, но чтобы ответить на вопрос, вам просто нужно объявить переменную перед циклом:

int i = 1;
for ( ; i < 10; i++) {

}
// You can still access i here since it is still in scope.
0 голосов
/ 10 февраля 2011

Пример со списком:

List<Integer> trueStates = new ArrayList<Integer>();

    for (int i=1;i<10;i++)
    {
        if (something == true) //e.g (i%2 == 0)
            trueStates.add(i);      
    }

После цикла for вы получите в trueState i что-то == true.Другой вариант - использовать карту, в которой указаны все ваши номера.

Пример с картой:

Map<Integer, Boolean> statesMap = new HashMap<Integer, Boolean>();
for (int i=1;i<10;i++)
{
    statesMap.put(i, something == true);        
}
0 голосов
/ 10 февраля 2011

Во-первых, ваши условия цикла находятся в неправильном порядке для того, что вы, вероятно, хотите:

for (int i = 1; i < 10; ++i)

Далее, я думаю, вы хотите

if (something == true)
{
    // do something
}
else
{
    // do something *else*
}

в теле цикла.

В любом случае, в части do something у вас есть значение i, поскольку оно имеет локальную область действия. В этот момент вы можете добавить его в массив по вашему выбору.

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