Как использовать значение снаружи для цикла - PullRequest
0 голосов
/ 12 апреля 2011

В следующем коде мне нужно значение varArray [i] для выполнения операторов if-else, но операторы if-else должны выполняться только один раз. Если я размещаю операторы if-else вне цикла for, операторы if-else выполняются правильно. Когда я размещаю оператор if-else внутри цикла for, операторы if-else выполняются несколько раз.

for (int i=0;i<varArray.length;i++) 
{
    varArray[i]= rand.nextInt(1999)-1000;
    System.out.println(varArray[i]);


    if(d==varArray[i])
    {
        System.out.println(d);      
        System.out.println(i+1);
    }  
    else if(d!=varArray[i])
    { 
        System.out.println(d);
        System.out.println(0);
    }
}

Нужна помощь по этому вопросу. искал часы

Ответы [ 3 ]

0 голосов
/ 12 апреля 2011

вы можете использовать перерыв;выйти из цикла for, если оператор if равен true.

for (int i = 0; i < varArray.length; i++) {
    varArray[i] = rand.nextInt(1999) - 1000;
    System.out.println(varArray[i]);

    if (d == varArray[i]) {
        System.out.println(d);      
        System.out.println(i + 1);
        break;
    }
    else if(d != varArray[i])
    { 
        System.out.println(d);
        System.out.println(0);
        break;
    }
}
0 голосов
/ 12 апреля 2011
for (int i = 0; i < varArray.length; i++)
{
    varArray[i] = rand.nextInt(1999) - 1000;
    System.out.println(varArray[i]);

    if (d == varArray[i])
    {
        System.out.println(d);      
        System.out.println(i + 1);
        break;
    }
    else if(d != varArray[i])
    { 
        System.out.println(d);
        System.out.println(0);
        break;
    }
}

Когда программа достигает вновь добавленного разрыва (в этом измененном фрагменте), она выходит из цикла for.Поэтому выполняем его только один раз.

Автор хотел отредактировать мой ответ, сказав:

Оператор break заставляет код выпрыгнуть из цикла for.я хочу, чтобы операторы цикла for выполнялись полностью, но if-else должен выполняться только один раз.

Для этого:

Boolean didExecuteIfElse = false;for (int i = 0; i

if (didExecuteIfElse == false) {
     if (d == varArray[i])
     {
        System.out.println(d);      
        System.out.println(i + 1);
     }
     else if(d != varArray[i])
     { 
        System.out.println(d);
        System.out.println(0);
     }
     didExecuteIfElse = true;
 }
}
0 голосов
/ 12 апреля 2011
if(d==varArray[i])

Вы хотели сказать, является ли (varArray [i] == 'd')?

или d переменной?

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