作业题问题

作业题问题

import java.util.Scanner;


public class ShowData {


private static int a;

private static int[] arr;


public int[] insertData()//此方法用于插入数据

{

int[] arr=new int[10];

Scanner sc=new Scanner(System.in);

for(int i=0;i<arr.length-1;i++)

{

arr[i]=sc.nextInt();

}

return arr;

}

public void showData(int[] a,int length)//此方法用于显示数据

{

for(int i=0;i<length;i++)

{

System.out.print(a+" ");

}

}

public void insertAtArray(int[] a,int n,int k)//此方法用于在指定位置插入数据

{

}

public void divThree(int[] a)//此方法用于查询能被三整除的数据

{

}

public int notic(int a)//显示提示信息

{

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();

Scanner sc=new Scanner(System.in);

a=sc.nextInt();//用于接收并返回键盘输入的数值

return a;

}


public static void main(String[] args)

{

ShowData n1=new ShowData();

ShowData n2=new ShowData();

ShowData n3=new ShowData();

ShowData n4=new ShowData();

ShowData n5=new ShowData();

//声明方法

int input=n1.notic(a);

switch(input/1)

{

case 1:n2.insertData();//键盘输入值为1时跳转至insertData方法

case 2:n3.showData(arr, 9);//键盘输入值为2时跳转至showData方法

}

}


}

以上为未完成的代码,运行截图如下请问应该怎么办,怎么样才能在按完1输入完数据以后可以继续按2键

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

1)这是什么意思?

ShowData n1=new ShowData();
ShowData n2=new ShowData();
ShowData n3=new ShowData();
ShowData n4=new ShowData();
ShowData n5=new ShowData();

声明一个对象就够了,一直沿用这个对象,对象是可以重复使用的。n2到n5删除掉。

2)执行两遍是因为int[] arr1=insertData();你把insertData()去掉。在switch中对应去insertData()就行了。3)注意switch中每个case结束后都缺少了break; 祝:学习愉快

  • Felixxx 提问者 #1
    谢谢 我还想问一下如果把int[] arr1=insertData()去了以后怎么把从insertData方法中接收的数组保存在main方法中并传参给其他方法
    2018-04-12 11:25:15
  • 好帮手慕雪 回复 提问者 Felixxx #2
    你在switch中调的时候可以arr1=insertData(),不就解决了嘛
    2018-04-12 13:47:28
  • Felixxx 提问者 #3
    非常感谢!
    2018-04-12 19:56:07
irista23 2018-04-13 09:59:50

eclipse中右键项目,选择Propertise,在打开的窗口左边选择第一个Resource,修改编码格式

http://img1.sycdn.imooc.com//climg/5ad00ef90001de4a08070714.jpg

提问者 Felixxx 2018-04-11 22:52:22

import java.util.Scanner;


public class ShowData {



public static int[] insertData()//此方法用于插入数据

{

int[] arr=new int[10];

Scanner sc=new Scanner(System.in);

for(int i=0;i<9;i++)

{

arr[i]=sc.nextInt();

}

return arr;

}

public void showData(int[] a,int length)//此方法用于显示数据

{

for(int i=0;i<length;i++)

{

System.out.print(a+" ");

}

}

public void insertAtArray(int[] a,int n,int k)//此方法用于在指定位置插入数据

{

}

public void divThree(int[] a)//此方法用于查询能被三整除的数据

{

}

public static int notic()//显示提示信息

{

int a;

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();

Scanner sc=new Scanner(System.in);

a=sc.nextInt();//用于接收并返回键盘输入的数值

return a;

}


public static void main(String[] args)

{

ShowData n1=new ShowData();

ShowData n2=new ShowData();

ShowData n3=new ShowData();

ShowData n4=new ShowData();

ShowData n5=new ShowData();

//声明方法

int input=notic();

int[] arr1=insertData();

switch(input/1)

{

case 1:n2.insertData();//键盘输入值为1时跳转至insertData方法

case 2:n3.showData(arr1, 9);//键盘输入值为2时跳转至showData方法

}

}


}

改进了一下代码以后发现输入九个数以后循环仍然没办法中止,请问是什么问题

  • 提问者 Felixxx #1
    我发现是insertData方法会执行两次 这是为什么
    2018-04-11 23:00:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师