8-1综合案例求指导

8-1综合案例求指导

//代码是我看到题目后自己写的,没有按照老师说到的几个方法,现在的问题是:按顺序执行第2步想显示数组中所有数时会默认将第10个数显示为0,有没有办法在这个代码的基础上修改一下,当我只插入9个数时只显示9个数?

package com.Javajichu;
import java.util.Scanner;
public class HomeWork8_1 {
    //创建数组插入数据
    public void insert(int[] arr){
        Scanner in =new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            if(i==9){
                System.out.println("数组元素为:");
                for(int j=0;j<i;j++){
                System.out.print(arr[j]+" ");
                }
                System.out.println();
                break;
            }
            System.out.println("请输入第"+(i+1)+"个数");
            arr[i]=in.nextInt();
        }
    }
    //显示提示
    public void print() {
        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 void all(int[] arr) {
        System.out.println("数组元素为:");
        for(int n:arr){
            System.out.print(n+" ");
        }
        System.out.println();
    }
    //在指定位置插入数据
    public void insertOne(int n,int m,int[] arr) {
        for (int i = arr.length-1; i >= m; i--) {
            arr[i]=arr[i-1];
        }
        arr[m-1]=n;
        all(arr);
    }
    //查询能被3整除的数据
    public void zhengchu3(int[] arr) {
        System.out.println("能被3整除的数有:");
        for(int n:arr){
            if(n%3==0){
                System.out.print(n+" ");
            }
        }
        System.out.println();
    }
    //主方法
    public static void main(String[] args) {
        int[] arr=new int[10];
        HomeWork8_1 homework=new HomeWork8_1();
        Scanner shuru=new Scanner(System.in);
        homework.print();
        for(;;){
            int temp=shuru.nextInt();
            if(temp==1){
                homework.insert(arr);
                homework.print();
                continue;
            }else if (temp==2) {
                homework.all(arr);
                homework.print();
                continue;
            }else if (temp==3) {
                System.out.println("请输入插入的数:");
                int a=shuru.nextInt();
                System.out.println("请输入插入数组中的第几个位置:");
                int b=shuru.nextInt();
                homework.insertOne(a, b, arr);
                homework.print();
            }else if (temp==4) {
                homework.zhengchu3(arr);
                homework.print();
            }else if (temp==0) {
                System.out.println("程序已退出!");
                break;
            }
        }
    }
}


正在回答

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

1回答

public void all(int[] arr) 这个方法多加一个参数,表示要显示几个数字,如public void all(int[] arr,int length),循环遍历数组时for(int i=0;i<length;i++)这里i小于参数length的值。调用方法时,如果想显示9个数据就写成:homework.all(a,9);

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 慕粉3402018 提问者 #1
    按照 你的方法,我第一次的确是9个数,但是当我插入一个数之后,再调用这个方法,就应该显示10个,而且我又不可能每调用一次public void all(int[] arr,length)这个方法时给length这个变量输入一个值
    2017-03-09 21:30:00
  • 好帮手慕珊 回复 提问者 慕粉3402018 #2
    在调用方法时判断,如果最后一个元素a[9]==0说明只有九个数据要显示,length的值传值为9,否则显示10个数据,length的值传值为10。
    2017-03-10 09:02:18
  • 慕粉3402018 提问者 回复 好帮手慕珊 #3
    嗯嗯,加上if条件来判断就可以了,已解决,感谢!
    2017-03-12 20:05:22
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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