Fru*_*ewb 1 java arrays compiler-errors
我开始用自己的在线教程教自己Java,我很难理解在这种情况下我应该做些什么:
任务:"更改数字中的值,这样就不会产生错误."
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3};
int length = numbers[3];
char[] chars = new char[length];
chars[numbers.length + 4] = 'y';
System.out.println("Done!");
}
}
Run Code Online (Sandbox Code Playgroud)
我检查了解决方案,但仍然不明白错误是什么以及如何修复它:
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3};
int length = numbers[2];
char[] chars = new char[length];
chars[numbers.length - 1] = 'y';
System.out.println("Done!");
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我现在明白3到2的变化,但为什么要将+4改为-1?
让我们一行一行.
int[] numbers = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)
这将创建一个包含3个元素的数组.第一个是1,第二个是2和第三个3.
int length = numbers[3];
Run Code Online (Sandbox Code Playgroud)
我们学习了所说阵列的长度是3.由于第三个元素的值也是3,因此您使用此值.但是数组的索引从0开始,因此numbers[3](3是索引)会导致错误.numbers[0]是1,numbers[1]是3,numbers[2]是3. numbers[3]是错误的.
char[] chars = new char[length];
Run Code Online (Sandbox Code Playgroud)
这会创建一个新数组,这次不是数字,而是字符.如'a','b'或'y'.数组的长度为3.
chars[numbers.length + 4] = 'y';
Run Code Online (Sandbox Code Playgroud)
numbers.length是3.为此添加4是7.如您所知,索引7指的是数组的第八个元素.由于chars只有3个元素长,这将导致错误.所以我们必须将四个变成一个东西,当它加到3时,小于3但大于或等于0.所以你可以将它改为-1,-2或-3.
System.out.println("Done!");
Run Code Online (Sandbox Code Playgroud)
这只输出"完成!" 到控制台,没有魔法.
| 归档时间: |
|
| 查看次数: |
321 次 |
| 最近记录: |