麻烦能看一下我的代码么?为什么在输入1将4个数字放入数组中后,使用再输入2得到的是五个零?
public int[] insertData(){
int[] data=new int[5];
for(int i=0;i<data.length-1;i++) {
System.out.println("请输入第"+(i+1)+"个数据:");
Scanner sc = new Scanner(System.in);
data[i]=sc.nextInt();
if(data[i]==0) {
System.out.print("插入的数据不能为零!请重新输入!");
System.out.println();
i=i-1;
continue;
}
}
System.out.println("数组元素为:");
for(int j=0;j<data.length-1;j++) {
System.out.print(data[j]);
System.out.print(" ");
}
return data;
}
public void showData(int[] a, int length) {
System.out.println("数组元素为:");
for(int j=0;j<a.length-1;j++) {
System.out.print(a[j]);
System.out.print(" ");
}
}
public void notice() {
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("************************************");
System.out.println("请输入对应的数字进行操作:");
}
//主方法
public static void main(String[] args) {
// 调用输出界面方法
Project jm = new Project();
jm.notice();
for(int i=0;;i++) {
// 遍历扫描从键盘输入的数字
Scanner sc = new Scanner(System.in);
String str = sc.next();
int[] mainData=new int[5];
if (str=="0") {
System.out.println("退出程序!");
break;
}
switch (str) {
// 当键盘输入1时,调用insertData方法插入数据。之后调用notice方法显示下一步操作。
case "1":
Project id=new Project();
mainData=id.insertData();
System.out.println();
Project not1 = new Project();
not1.notice();
for(int j=0;j<mainData.length;j++) {
System.out.print(mainData[j]);
System.out.print(" ");
}
break;
// 调用
case "2":
Project sd = new Project();
sd.showData(mainData, 5);
break;
正在回答
同学你好,建议同学将int[] mainData = new int[5];定义在循环外。Scanner对象定义在循环外,Project对象定义一个即可,输入对应的数字进行操作,所以可以使用nextInt()从键盘接收整型数据,case后用整型数据表示,修改后如下:

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星