Я знаю C, а теперь пытаюсь наклонить Java.Исключение при печати массива в Java
Вот простая программа, которая проходит через цикл и меняет свойства в массиве «str». когда я пытаюсь напечатать его так, как я делал на C, он работает, но также дает мне исключение. почему это?
public class ReverseStringLG {
public static void main(String[] args) {
char[] str={'A', 'B', 'C', 'D', 'E', 'F'};
char[] strLG={'L', 'G', 'L', 'G', 'L', 'G'};
int i, j, k=1;
for(j=0, i=str.length-1;i>j;j++, i--)
{
char tmp;
tmp=str[j];
if(j%2==0)
str[j]=strLG[j];
else
str[j]=str[--i];
str[i++]=tmp;
k++;
}
for(i=0;i<=str.length;i++)
{
System.out.printf("%c\n", str[i]);
}
}
}
вот консоль:
Почему я должен удалить «=»? – VSG24
@ VSG24: Поскольку '<=' будет продолжать значение 'str.length', тогда как '<' остановит только * до * значение 'str.length'. Поскольку 'str.length' всегда 1 больше последнего индекса' str', вы хотите остановить повторение цикла до этого значения. – David
@ VSG24 И btw, это в основном то же самое в C. Там вам также нужно остановиться, прежде чем вы достигнете длины. –