提示数组下标越界了 ???调试了好几天了 还是没看出是哪个地方越界了
package com.imooc.system;
import java.util.Scanner;
public class glSystem {
//显示用户提示操作的方法; (无参无返回值的方法)
public void userPrompt() {
System.out.println("*******************************************************");
System.out.println(" ① 输入1 - 插入数据;");
System.out.println(" ② 输入2 - 显示所有数据;");
System.out.println(" ③ 输入3 - 在指定位置插入数据;");
System.out.println(" ④ 输入4 - 查询能被3整除的数据;");
System.out.println(" ⑤ 输入0 - 退出管理;");
System.out.println("*******************************************************");
}
//插入数据的方法;
public int[] insertData() {
int[] a=new int[6]; //声明一个长度为6的整形数组;
Scanner sc=new Scanner(System.in); //开启键盘;
if(a[a.length-1]==0) { //判断数组是否为空,为空则输入数组元素并遍历数组内容;
for(int i=0;i<a.length-1;i++) {
System.out.println("请输入第"+(i+1)+"个元素");
a[i]=sc.nextInt();
}
System.out.println("您刚输入的数组元素为: ");
for(int i=0;i<a.length-1;i++) {
System.out.print(a[i]+" ");
}
sc.close(); //关闭键盘;
}else { //不为空则遍历所以数组内容;
System.out.println("数组元素已经存在,具体元素如下: ");
for(int i:a) {
System.out.print(a[i]+" ");
}
}
return a; //返回当前a数组;
}
//显示用户为数组插入的所有数据;
public void showData(int[] a,int length) {
a=insertData();
System.out.println("数组元素的内容为:");
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+" ");
}
userPrompt();
}
//在指定位置修改数据;
public void insertAtArray(int[] a,int n,int k){
System.out.println("请输入要修改的数据:");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
System.out.println("请输入要修改的位置:");
k=sc.nextInt();
a[k]=n;
sc.close();
userPrompt();
}
//查出数组中是否能被三整除的元素,并显示输出;
public void divTree(int[] a) {
for(int i=0;i<a.length;i++) {
if(a[i]%3==0){
System.out.print(a[i]+" ");
}
}
userPrompt();
}
//----------------------------------------------------以下是主方法-------------------------------------------------------
public static void main(String[] args) {
glSystem gl=new glSystem(); //创建glSystem类的对象gl;
gl.userPrompt(); // 调用方法,输出用户提示操作信息;
System.out.println("请输入对应的数字进行操作!");
Scanner sc=new Scanner(System.in); //开启键盘;
while(true) {
int n=sc.nextInt(); //接收用户信息输入;
switch(n) {
case 1:
gl.insertData(); //调用方法,为数组插入数据;
break;
case 2:
gl.showData(gl.insertData(), gl.insertData().length-1); //传参并遍历数组中的所有数据;
break;
case 3:
int k=sc.nextInt(); //接收用户信息输入;
gl.insertAtArray(gl.insertData(), n,k);
break;
case 4:
gl.divTree(gl.insertData()); //找出能被3整除的所有元素;
break;
case 0:
System.out.println("退出程序!");
break;
default:
System.out.println("非法数值,请重新输入!");
}
}
// sc.close(); //关闭键盘输入
}
}
正在回答 回答被采纳积分+1
那如果我想在最后关闭键盘输入 要怎么操作?
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星