Я пытаюсь написать Java-программу для проверки следующего кода
12,8,23,6,5,17,20,9
m=2;
n=0;
while m<array length
repeat
ar[m]=ar[n]+ar[n+1];
m++;
n++;
End while
Итак, это был мой исходный код
public class Main {
public static void main(String [] args) {
int []x= {12,8,23,6,5,17,0,9};
int m=2;
int n=0;
while(m<x.length) {
x[m]=x[n]+x[n+1];
m++;
n++;
System.out.println(x);
}
}
}
И он сгенерировал что-то вроде этого в качестве вывода
[I@3d4eac69
[I@3d4eac69
[I@3d4eac69
[I@3d4eac69
[I@3d4eac69
[I@3d4eac69
Также это был ответ моего учителя
public class Main {
public static void main(String [] args) {
int []x= {12,8,23,6,5,17,0,9};
int []y=algo(x); **//need an explanation**
}
public static int[] algo(int[]ar) { **//need an explanation**
int m=2;
int n=0;
while(m<ar.length) {
ar[m]=ar[n]+ar[n+1];
m++;
n++;
}
return ar;
}
}
Однако для кода учителя нет сгенерированного вывода, однако ответ должен быть примерно таким 12 8 20 28 48 76 124 200 Пожалуйста, объясните, какой из них лучший и как они работают. Также я прокомментировал некоторые строки кода моего учителя, которые я не могу понять. Пожалуйста, объясните и их.
не могли бы вы объяснить немного больше, пожалуйста
Что ж, это плохой обман. Но как бы там ни было. По крайней мере, это объясняет ваш плохой результат. Ваш учитель использует метод. Если вы никогда не видели его, я бы порекомендовал вам поискать учебник по Java. Оба примера кода делают одно и то же, просто у вас по какой-то причине есть странный отпечаток для вашего массива.
Но его код также ничего не выводит. Не могли бы вы объяснить, почему это так?
import java.util.Arrays; открытый класс Main {public static void main (String [] args) {int [] x = {12,8,23,6,5,17,0,9}; int m = 2; int n = 0; в то время как (m <x.length) {x [m] = x [n] + x [n + 1]; m ++; n ++; Arrays.toString (x); }}} Это также не выводит ничего
Я могу только переосмыслить: ищите учебник по Java. У вас проблемы с самыми основами.
@Ben Хорошо, большое спасибо
@Ben Спасибо за работу ('-')




Используйте
Arrays.toString(x)для печати массива.