Сообщение об инициализации локальной переменной в Java

Я собирался опубликовать запрос, но решил его, переработав код, избегая проблемы, но не отвечая на нее.

Итак, ниже приведен пример того, что я хотел сделать.

У меня был for loop внутри цикла do-while, и я хотел, чтобы цикл do-while выполнялся до тех пор, пока не будет достигнуто условие, относящееся к вложенному for loop. Ошибка, которую я получал, заключалась в том, что i не было инициализировано, поэтому условие while не могло быть выполнено, что имеет смысл.

Я надеялся создать локальную переменную вне цикла do-while и инициализировать ее во вложенном цикле for loop. Это, очевидно, было невозможно в том виде, в котором я пытался его выполнить, но есть ли другой способ «пост-инициализации» переменной в Java?

Также просто из любопытства, какие языки допускают такую ​​​​инициализацию постов?

case 2:
        int i;
        do{
            try{
                for(i=0; i<array.length;i++){               
                    if(...
                }   
            }
            catch(Exception e)
            {
                System.out.println(e.getMessage());
            }

        } while(!array[i].state.equals("X"));
        break;

person Edward    schedule 12.10.2014    source источник


Ответы (2)


Вы можете легко решить эту проблему, задав i начальное значение при его объявлении:

int i = 0;
person Eran    schedule 12.10.2014

Вы должны инициализировать переменную de i до выполнения do-while.

Внутри цикла do-while вы можете сбросить переменную. Теперь вы уже сделали это в условии for.

С другой стороны, я не знаю, для чего это сделал ваш код внутри и логика вашего алгоритма, но я думаю, что у вас может быть бесконечный цикл, если нет ни одного элемента с состоянием «X». Я думаю, что вполне возможно (конечно, зависит от вашего алгоритма) удалить цикл for и добавить код в do-while с i++ и таким конечным условием: while(!array[i].state. equals("X") && i ‹ array.lengh);

person Mar Millán    schedule 12.10.2014