вопрос про команду loop и break - PullRequest
1 голос
/ 30 июня 2010

Я протестировал следующий код, который может печатать 0 и 2, но он печатает 1 и 1 почему?

public class break_command {


    public static void main(String[] args) {
       for (int i=0;i<10;i++){
            for (int j=1;j<10;i++){
                if ((i+j) %2==0){
                    System.out.println("i  "+ i +"  j   " +j);
                    break;
                }


            }
            break;
       }
    }

}

result//
i  1  j   1
BUILD SUCCESSFUL (total time: 0 seconds)

Ответы [ 2 ]

4 голосов
/ 30 июня 2010

Это строка:

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

Предполагается, что j ++ не i ++?

В противном случае это означает на первой итерации:

if ((i+j) %2==0){

Будет правдой.

2 голосов
/ 30 июня 2010

Вы повторяете i внутри вашего второго цикла, а не j. Итак, изначально, в первом цикле, у меня есть значение 0. Затем, когда вы входите во второй цикл, оно увеличивается до 1. В этот момент у меня есть значение 1, а j имеет значение один; их сумма четна, поэтому она распечатывает их и выходит из внутреннего цикла, выходит из внешнего цикла, и все готово.

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