求助老师,关于Dead Code报错问题

求助老师,关于Dead Code报错问题

问题描述:

                请问老师我这个Dead Code是因为什么原因造成的呀?

尝试过的解决方式:

                将代码删除重写,对照视频内容代码审查都尝试了;


https://img1.sycdn.imooc.com//climg/62ffa49509eadb4310691036.jpg

正在回答

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

1回答
同学你好,编译器提示Dead code是因为同学编写的是无效代码,同学没有将完整代码贴到代码区,老师无法对同学代码进行测试。
建议同学将所有类的代码贴到问答区(以复制粘贴形式反馈),便于老师进行测试排查问答。
祝学习愉快!
  • WilliamSCohen 提问者 #1

    老师你好,我的代码如下:

    package com.imooc.datamanage;
    
    import java.util.Scanner;
    
    /**
     * 从键盘接收整型数据存放到数组中,并对数组中的数据进行管理
     * @author William
     *
     */
    
    public class DataManage {
    	/**
    	 * 从键盘接收数据
    	 * @return 接收数据的数据
    	 */
    	//接收数据的方法
    	public int[] insertData() {
    		int[] a = new int[10];
    		Scanner sc = new Scanner(System.in);
    		// 少接收一个数据,为在指定位置处插入数据做准备
    		for (int i = 0; i < a.length - 1; i++) {
    			System.out.println("请输入第" + (i + 1) + "个数据:");
    			try {
    				a[i] = sc.nextInt();
    			} catch (java.util.InputMismatchException e) {
    				System.out.println("输入的数据有误,不能有非数字,请重新输入!");
    				sc.next();
    				i--;
    			}
    
    		}
    		return a;
    	}
    	/**
    	 * 显示数组中元素的内容
    	 * @param a:数组
    	 * @param length :要显示的数组元素的个数
    	 */
    	public void showData(int[] a,int length) {
    		for(int i=0;i<length;i++) {
    			System.out.print(a[i]+" ");
    		}
    		System.out.println();
    	}
    	/**
    	 * 从键盘接收一个数据,插入到数组的指定位置处
    	 * @param a 要插入数据的数组
    	 * @param n 要插入的数据
    	 * @param k 要插入的位置,从0开始
    	 */
    	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;
    	}
    	/**
    	 * 输出数组中能被3整除的元素
    	 * @param a
    	 */
    	public void divThree(int[] a) {
    		String str="";
    		int count=0;
    		for(int n:a) {
    			if(n%3==0) {
    				str=str+n+" ";
    				count++;
    			}
    		}
    		if(count!=0) {
    			System.out.println("数组中能被3整除的有"+count+"个:"+str);
    		}else {
    			System.out.println("数组中没有能被3整除的数!");
    		}
    	}
    	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("****************************************************");
    	}
    	public static void main(String[] args) {
    		DataManage dm=new DataManage();
    //		int[] a = dm.insertData();
    //		dm.showData(a, a.length-1);
    		Scanner sc=new Scanner(System.in);
    		int input;
    //		System.out.println("请输入要插入的数据:");
    //		int n=sc.nextInt();
    //		System.out.println("请输入要插入的位置:");
    //		int k=sc.nextInt();
    //		dm.insertAtArray(a, n, k);
    //		dm.showData(a, a.length);
    //		dm.divThree(a);
    		while(true) {
    			dm.notice();
    			System.out.println("请输入对应的数字进行操作:");
    			input=sc.nextInt();
    			int[] a=null;
    			if(input==0) {
    				System.out.println("退出程序!");
    				break;
    			}
    			switch (input) {
    			case 1:
    				//插入数据
    				a=dm.insertData();
    				System.out.println("数组元素为:");
    				dm.showData(a, a.length-1);
    				break;
    			case 2:
    				// 显示数组元素
    				if (a!=null){
    					System.out.println("数组元素为:");
    					if (a[a.length - 1] == 0) {
    						// 如果数组的最后一个元素为0,说明还没有插入数据,因此不显示最后一个元素
    						dm.showData(a, a.length - 1);
    					} else {
    						dm.showData(a, a.length);
    					}
    				} else {
    					System.out.println("还未在数组中插入数据,请重新选择操作!");
    				}
    				break;
    			case 3:System.out.println("插入指定数据");break;
    			case 4:System.out.println("查询能被3整除的数据");break;
    				
    			
    
    			
    			}
    		}
    
    	}
    
    }


    2022-08-21 09:56:05
  • WilliamSCohen 提问者 #2

    不好意思老师,我找到我的问题所在了,问题出在了   int[] a=null;  被我写进了while循环里,后来将它改到了main方法里报错就没有了https://img1.sycdn.imooc.com//climg/6301a1b10919d5c308550975.jpg

    2022-08-21 11:08:36
  • 好帮手慕小尤 回复 提问者 WilliamSCohen #3

    同学你好,同学将数组a定义到了循环中,则每一次循环都会将a赋值为null,从而导致在case2中判断失效,从而出现无效代码的提示。建议同学将数组定义到循环外。如下所示:https://img1.sycdn.imooc.com//climg/6301a268099bbdcd09710365.jpg

    祝学习愉快!

    2022-08-21 11:12:34
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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