Java

Простейший код java вопрос

Тупые вопросы новичка
Есть элементарный код:

Class test {
public static void main(String [] args) {
int x = 0;
int y = 0;
while ( x < 5 ) {

y=x-y;

System.out.print( x + "" +y+ " ");
x=x+1;

Консоль: 00 11 21 32 42

1. Почему если x=x+1; поставить перед System.out.print( x + "" +y+ " "); то меняется результат?
2. Как вычисляется y? формула y=x-y; то есть это: y=0-0=0; y=1-0=1; y=2-0=2; y=3-0=3; y=4-0=4 почему получилось 0;1;1;2;2 ?)))
er
erkeahan
249
1. Результат не меняется. Меняется выводимое в консоль значение x. Тут всё просто и закономерно: на входе цикла x = 0. Цикл работает построчно. Соответственно если print стоит до инкремента (x+1), то и выводить он будет то что было на входе цикла. Сперва вывод x, потом изменение x на x+1.
А если инкремент разместить до print, то на в print пойдёт уже значение x+1. Т. е. сперва оно присвоит x = x+1, а потом выведет этот новый x в консоль.
2. Вычисляется не так. В цикле y постоянно переприсваивается на x+y. Т. е. расчёт:
x=0, y=0-0=0
x=1, y=1-0=1 //в следующий проход цикла "y" уже не "0", а "1"
x=2, y=2-1=1 //в следующий проход цикла "y" опять будет равен 1
x=3, y=3-1=2
x=4, y=4-2=2
Павел Павлов
Павел Павлов
85 402
Лучший ответ
В среде разработки (IDE) должен быть отладчик (debugger). Научись им пользоваться. Он позволяет выполнять программу по шагам и смотреть значения переменных. Отладчик помогает понять, как выполняется программа.
Иван Ваданюк
Иван Ваданюк
58 065
1) не понял
Возможно потому что System.out.print выводит результат в окно программы.

2) х равно 0, у = 0.
while (x < 5 ) это цикл который повторяет код пока х меньше 5.
код
у = х 0 - у 0;
System вывод на экран
x = x 0 + 1;
следущий код
y = x 1 - y 0 = 1;
x = x 1 + 1; = 2;
System вывод на экран сначала х потом у. то есть х = 2 у 1.

00 11 21 32 42
1 2 3 4 5
Видишь значений 5 - это потому что while (x < 5 ).
while (x < 5 )
{
значит выполнения кода находящегося тут до тех пор пока х < меньше 5 .
}

Твое 2) Как вычисляется y? формула y=x-y; то есть это: y=0-0=0; y=1-0=1; y=2-0=2; y=3-0=3; y=4-0=4 почему получилось 0;1;1;2;2 ?)))
Ответ:
y = x - y то есть да это y = 1 - 0 = 1; y = 2 - 0 -------тут ошибка.
потому что до этого у тебя уже y = 1. и уже получается y = 2 - 1; и так далее.

Добавлю почему получилось 0;1;1;2;2 ?))) Получилось потому что ты глупее компьютера, а с компьютером никому не сравниться)))

Мазай очень правильную вещь сказал, загуглил свою студию разработки или как ее назвать даже не знаю, поищи java studio отладчик, или debugger.
Я не знаю где ты эти программы создаешь.
erkeahan 1) не понял
Возможно потому что System.out.print выводит результат в окно программы.

я имею в виду если x=x+1; я ставлю после System.out.print( x + "" +y+ " "); то результат :00 11 21 32 42
если перед System.out.print( x + "" +y+ " "); то результат 10 21 31 42 52
Почему?

2) c X все понятно, с Y не понятно, почему Y получается 0 1 1 2 2 если
Y=x0-y0=0
Y=x1-y0=1
Y=x2-y0=2
Y=x3-y0=3
Y=x4-y0=4
не так?
Кутман Молдобаев 2) c X все понятно, с Y не понятно, почему Y получается 0 1 1 2 2 если
Y=x0-y0=0
Y=x1-y0=1 - видишь у тебя тут ====== 1 а почему в 3 y у тебя 0.
Y=x2-y0=2
Y=x3-y0=3
Y=x4-y0=4