第二个来了
数字逆序输出
题目描述
输入10个数字,然后逆序输出。
输入
十个整数
输出
逆序输出,空格分开
开始写的代码
package src;
import java.util.Scanner;
public class tow01 {
public static void main(String[] args) {
System.out.println("请输入10个整数:");
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
for (int i = arr.length-1; i < 10; i--) {
int a = sc.nextInt();
arr[i - 1] = a;
}
for (int temp:arr) {
System.out.print(temp);
System.out.print(" ");
}
}
}
出现了问题,会发现一直循环输入,无法输出,而且在写的过程中出现了数组越界的问题。经过大神的指导,我发现了错误的原因,居然是for循环的时候忘了考虑 i < 0的情况,我裂开了,,,arr[i - 1] = a;
还有这一个应该是arr[i] = a;
,定义的数组是10个内存空间,最后一位的索引是9,for (int i = arr.length-1; i < 10; i--)
在for循环的时候已经减过1了,后面就不需要了。
修改后的代码
package src;
import java.util.Scanner;
public class tow02 {
public static void main(String[] args) {
System.out.println("请输入10个整数:");
Scanner sc = new Scanner(System.in);
int[] arr = new int[10];
for (int i = arr.length-1;0 <= i; i--) {
int a = sc.nextInt();
arr[i] = a;
}
for (int temp:arr) {
System.out.print(temp);
System.out.print(" ");
}
}
}
运行结果
补充:
1.数组:
若干个相同数据类型的元素按一定顺序排列的集合
2.数组特点
- 数组是 相同数据类型元素的集合
- 数组中的各个元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起
- 数组元素用整个数组的名字和它自己在数组中的顺序位置来表示
3.索引数组
索引数组存储一系列经过组织的单个或多个值,其中的每个值都可以通过使用一个无符号整数进行访问,第一个索引始终是数字0,且添加到数组中的每个后续元素的索引以1为增量递增。另外,数组中的元素索引指的是数组的下标。
4.i++与++i的区别
通俗点来说就是i++是先赋值后加一;++i是先加一后赋值。