我从git上抄的代码怎么会报错呢 2017-06-26 16:51 采纳率: 0%
浏览 607

各位大神们,新手有问题请教一下

package com.homework;

import java.util.Scanner;

public class HomeWork {
//插入数据
public int[] insertData(){
Scanner sc=new Scanner(System.in);
int[] a=new int[10];
for(int i=0;i System.out.println("请输入第"+(i+1)+"个数据:");
a[i]=sc.nextInt();
if(a[i]==0){
continue;
}
}
System.out.println("数组元素为:");
for(int m:a){
if(m==0){
continue;
}else{
System.out.print(m+" ");
}
}
System.out.println();
return a;
}
//显示所有数据
public void showData(int[] a){
System.out.println("数组元素为:");
for(int i=0;i if(a[i]==0){
continue;
}else{
System.out.print(a[i]+" ");
}
}
System.out.println();
}
//在指定位置处插入数据
public void insertAtArray(int[] a,int n,int k){
Scanner sc=new Scanner(System.in);
System.out.println("插入数据前的数组:");
for(int m:a){
if(m==0){
continue;
}else{
System.out.print(m+" ");
}
for(int i=0;i if(a[i]==0){
continue;
}
}
}
System.out.println();
System.out.println("您要在第几位元素后插入新的数据:");
k=sc.nextInt();
for(int i=a.length-1;i>=k;i--){
a[i]=a[i-1];
}
System.out.println("您要插入的数据为:");
a[k]=sc.nextInt();
System.out.println("插入数据后的数组:");
for(int m:a){
if(m==0){
continue;
}else{
System.out.print(m+" ");
}
}
System.out.println();
}
//查询能被3整除的数据
public void divThree(int[] a){
System.out.println("数组内能被3整除的数为:");
for(int m:a){
if(m%3==0&m!=0){
System.out.print(m+" ");
}
}
System.out.println();
}
//提示信息
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) {
    HomeWork hm=new HomeWork();
    while(true){
        int[] a1=new int[10];
        hm.notice();
        Scanner sc=new Scanner(System.in);
        int num=sc.nextInt();
        switch(num){
            case 1:
                hm.insertData();
                break;
            case 2: 
                hm.showData(a1);
                break;
            case 3:
                hm.insertAtArray(a1, 0, 0);
                break;
            case 4:
                hm.divThree(a1);
                break;
            case 0:
                System.exit(0);
                break;
            default:
                System.out.println("您输入的信息有误,请重新输入:");
        }
    }

}

}

为什么在insertData里给的数组元素返回到主方法再输出2出来的全部是0呢,研究了老半天还是没搞出来,

  • 写回答

1条回答 默认 最新

  • 发红的茶叶水 2017-06-28 02:49
    关注

    看看你变量的作用域,循环进来每次都是重新创建对象

    评论

报告相同问题?

悬赏问题

  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题