Не совсем понятно, почему ответ именно такой

245
26 ноября 2016, 19:19

Итак есть программа, которая выводит следующее:

13 15 x = 6

Но не совсем понятно почему x = 6, а не 7 (как мне казалось должно выйти) и почему значение y выводит после 13 не 14, а сразу 15

public class Output {
    public static void main(String[] args) {
        Output o = new Output();
        o.go();
}
void go() {
    int y = 7;
    for (int x = 1; x < 8; x++) {
        y++;
        if (x > 4) {
            System.out.print(++y + " ");
        }
        if (y > 14) {
            System.out.println(" x = " + x);
            break;
        }
    }
}
}

P.S. Объясните, как программа ведет себя после того как x доходит до значение равное 5

Answer 1

Почему 13 и потом сразу 15?

Когда первый раз (x = 5) выполняется условие x > 4, в этот момент постфиксный инкремент y++ дает 12, а префиксный инкремент в System.out.print(++y + " "); дает y = 13. Вторая итерация, когда x = 6, опять же срабатывают два инкремента и на выходе получаем y = 15.

Почему x = 6, а не 7?

Когда выполняется условие y > 14, в этот момент x = 6, в теле условия это выводится на печать и break заканчивает работу цикла for, поэтому x не достигает значения 7.

READ ALSO
bluetooth android

bluetooth android

Приложение вылетает если блюзуз на устройстве не включен

205
Поиск в приложении: Searchable Activity, Searchable Dialog

Поиск в приложении: Searchable Activity, Searchable Dialog

Хочу сделать поиск в определенной активити в приложении, немного запуталась в тьюториалахХочу добавить в MainActivity, стандартный поиск при нажатии...

270
Расположить кнопку, что бы она была между двумя RelativeLayoout

Расположить кнопку, что бы она была между двумя RelativeLayoout

Нужно расположить кнопку, что бы она была, как на рисунке:

270