Тупые вопросы новичка
Есть элементарный код:
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 ?)))
Java
Простейший код java вопрос
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
А если инкремент разместить до 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
В среде разработки (IDE) должен быть отладчик (debugger). Научись им пользоваться. Он позволяет выполнять программу по шагам и смотреть значения переменных. Отладчик помогает понять, как выполняется программа.
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.
Я не знаю где ты эти программы создаешь.
Возможно потому что 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.
Я не знаю где ты эти программы создаешь.
Похожие вопросы
- Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?
- Прошу помощи код Java
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- Не запускается код на Java.
- Как для андроид, в java коде, имитировать нажатие кнопки
- Код на java.
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов
- Начинаю изучать JAVA. Естьфрагмент кода. Вопрос в том, какое значение будет выведено после выполнения этого фрагмента.
- Написание кода на Java
- Как можно запустить строчку java кода которая хранится в txt файле?
Возможно потому что 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
не так?
Y=x0-y0=0
Y=x1-y0=1 - видишь у тебя тут ====== 1 а почему в 3 y у тебя 0.
Y=x2-y0=2
Y=x3-y0=3
Y=x4-y0=4