Хорошо, здесь есть пара неправильных вещей. Я попытаюсь указать на лучшее, что я могу.
Условная проверка
int i = 0;
//This works but it's an important logic concern to notice.
if ( i <= 1 ) { //Do Something }
else if ( i >= 1 ) { //Do Something }
//This does the exact same thing as above
if ( i <= 1 ) { //Do Something }
else if (i > 1 ) { //Do Something }
Причина, по которой он делает то же самое, заключается в том, что условные выражения проверяются сверху вниз на 99% всех языков. Это означает, что если вы введете 1
, то первое условие ВСЕГДА вернет true
. Однако; если это 2
, то второе условное выражение вернет true
. Обратите внимание, что в этом блоке кода второе условное else if
НИКОГДА не вернет true для 1
, поскольку оно проверяется и возвращается в первом условном выражении.
Возвращение значений из массивов
double[] curve = new double[] ( 1.0, 2.0, 3.0 );
for (int i = 0; i < curve.Length; i++)
{
System.out.println("Curve Element: " + curve[i]);
}
Вы не можете просто распечатать весь массив значений, вам нужно получить каждый отдельный элемент массива и распечатать его или сжать его до одной строки. Я не уверен, что ваш инструктор ищет массив или какие-то вычисления для массива, чтобы вернуть единственное значение.
forLoopsFTW ()
for (int value : intArray) { //Do something with value }
for (i = 0; i < someLength; i++) { //Do something like someLength[i] }
Это два распространенных способа l oop через коллекции (массивы). В настоящее время вы используете что-то вроде (i = 1; i < someNumber; i++)
, что означает, что вы будете пропускать первый элемент каждый раз.
ВСЕГДА l oop с использованием индексации на основе 0
. Позже вы узнаете, что существуют тонны встроенных методов, которые начинаются с 0
, и если вы не получите gr asp на ранней стадии, вы очень быстро узнаете, что Index out of bounds
ошибки есть.