为什么我无限重复第二个方法
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 int[] insertData(){
int []a=new int[10];
Scanner b=new Scanner(System.in);
for(int i=0;i<a.length-1;i++){
System.out.println("请输入第"+(i+1)+"个数据");
a[i]=b.nextInt();
}
System.out.println("您输入的数据为:");
for(int i=0;i<a.length-1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
return a;
}
public void showData(int[]a,int length){
System.out.println("数组元素为:");
for(int i=0;i<a.length-1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
public void insertAtArray(int[]a,int n,int k){
for(int i=a.length-1;i>=k;i--){
a[i]=a[i-1];
}
a[k]=n;
}
public void divThree(int[]a){
System.out.println("打印能被3整除的元素:");
for(int i=0;i<a.length;i++){
if (a[i]%3==0){
System.out.print(a[i]+" ");
}
}
}
public static void main(String[] args) {
int []a=new int[10];
DemoAsm da=new DemoAsm();
da.notice();
Scanner b=new Scanner(System.in);
int sum=b.nextInt();
while(true){
switch(sum){
case 1:
da.insertData();
da.notice();
break;
正在回答
你好,作业一直在执行第二个方法的原因:case 1 后面的break跳出的是当前switch结构,并没有跳出while循环,而且sum的值也一直没有变。因此可以将sum定义在while循环外面,将sum=b.nextInt();写到while和switch结构之间,利用if语句判断sum,当sum为0时,调用break退出程序。
另外建议:将da.notice();写到while和switch结构之间,将其他地方的去掉;可以利用while循环有效的简化代码。
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星