老师我最下面的switch的语句光循环,加上break就直接退出switch了,求救啊

老师我最下面的switch的语句光循环,加上break就直接退出switch了,求救啊

package imooc;

import java.util.Scanner;

public class SystemDemo {
	//向数组中插入数据的方法1
	public  int[] insertData(){
		int[] a = new int[10];
		System.out.println("请输入九个数据(不可输入0)");
		for(int i=0;i<9;i++){
			System.out.println("请输入第"+(i+1)+"个数字");
			Scanner sc=new Scanner(System.in);
			a[i]=sc.nextInt();
		}
		showData(a,a.length-1);
		return a ;
	}
	//显示所有数据的方法2
	public void showData(int[]a,int length){
		System.out.println("数组元素");
		length=a.length-1;
		for(int b:a){
			System.out.print(b+" ");
		}
		System.out.println("");
		System.out.println("*****************************");
	}
	//在指定位置插入数据的方法3
	public void insertArray(int [] a,int n1,int n2){
		System.out.println("在输入的数字位置上插入您要插入的数据");
		for(int i=a.length-1;i>1;i--){//依次向后赋值
			if(n1==i){
				a[i-1]=n2;
				break;
			}
           a[i] =a[i-1];
           
        }
		System.out.println(a.length);
		showData(a,a.length);
		
	}
	//查询能被3整除的数据4
	public void divThree(int [] a){
		System.out.println("能被3整除的数据为");
		for(int b:a){
			if(b%3==0){
				System.out.println(b+" ");
			}
		}
	}
	//显示提示信息的方法5
	public void notice(){
		System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
		System.out.println("    1--向数组中依次插入数据");
		System.out.println("    2--显示所有数据");
		System.out.println("    3--在指定位置插入数据");
		System.out.println("    4--查询能被3整除的数据");
		System.out.println("    0--退出");
		System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
	}

	public static void main(String[] args) {
		System.out.println("请输入对应的数字进行操作");
		SystemDemo demo=new SystemDemo();
		demo.notice();
		Scanner sc2=new Scanner(System.in);
		int k=sc2.nextInt();
		switch(k){
		case 1:
		       int a[]=demo.insertData();
		       
		case 2:demo.showData(demo.insertData(), demo.insertData().length);
		break;
		case 3:a=demo.insertData();
			   System.out.println("请输入在第几个位置插入");
		       Scanner sc=new Scanner(System.in);
		       int n1=sc.nextInt();
		       System.out.println("请输入要插入的数字");
		       Scanner sc1=new Scanner(System.in);
	           int n2=sc1.nextInt();
		       demo.insertArray(a, n1, n2);
		       break;
		case 4:demo.divThree(demo.insertData());
		break;
		case 0:break;
		}
		
		
	
	}


正在回答

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

2回答

你好,可以在demo.notice();外包上while循环,增加一个标志flag,初始值为true,while(ture)程序就能够连续执行;当用户输入0时,设置flag为false,程序就退出了。祝学习愉快~

  • 草莓青菜 提问者 #1
    老师我的问题是我程序运行起来的时候,输入1,就开始调用依次向数组中输入数据的方法了,输完9个数据,还是会再从头再让输入数据,光循环输入数组的方法
    2017-08-16 08:50:01
  • 一叶知秋519 回复 提问者 草莓青菜 #2
    case 1后面需要加个break。祝学习愉快~
    2017-08-16 09:23:51
  • 草莓青菜 提问者 回复 一叶知秋519 #3
    老师,我表达能力不太好,我上交作业您给批的时候看看吧,谢谢老师,我脑子笨一点,转不过弯来了
    2017-08-16 11:01:29
沫沫Michelle 2017-08-15 09:26:34

刚开始也遇到了这样的问题,所以需要循环调用switch这个结构。可以考虑把这个封装到信息提示那个方法里面,然后在其他方法执行完之后继续调用这个信息提示方法,这样一直被调用就不会执行一次就退出了!希望能够帮助到你!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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