Почему ниже выводится 5 вместо 25?

public class test{

    public test()
    {
        int i =0;
        int j =0;
        int u = 0;

        for (; i<=4; i++)
        {
            for (; j<=4; j++)
            {
                u++;
            }

        }

        System.out.println(u);
    }

    public static void main(String[] args)
    {
        test t = new test();        
    }
}
-4
yomexzo 2 Апр 2014 в 17:17

2 ответа

Лучший ответ

Потому что j никогда не сбрасывается обратно в 0.

1-я итерация внутреннего цикла запускает j от 0 до 4 (увеличивая u в 5 раз в целом, делая его 5), а затем никогда не запускается снова, поскольку j остается на 4 - поэтому остальные итерации внешнего цикла (от i = 1 до i = 4) ничего не делать.

4
radai 2 Апр 2014 в 13:18

Потому что в первый раз после того, как j стало 4, цикл for никогда не выполняется снова ...

Если вы хотите получить 25, установите j = 0 внутри перед запуском внутреннего цикла или инициализируйте j равным 0 при инициализации внутреннего цикла.

1
Nadun 2 Апр 2014 в 13:23