teresia173 2017-10-05 07:42 采纳率: 100%
浏览 692
已采纳

Delete函数中的for循环被跳过了,是为啥呀?

package week1;

import java.util.*;
import java.util.Scanner;

public class SqList {

public static Object[] listElem; //创建顺序数组

public static int curNum; //当前数组长度

final static int maxsize=100; //最大数组空间

public static  void setcurNum(int j){

    curNum=j;

}


public static void Build()throws Exception{

        int i=0;
        listElem=new Object[curNum];  //创建新的顺序表
        for(i=0;i<curNum;i++){
            System.out.println("第"+(i+1)+"个数为:");

            Scanner num=new Scanner(System.in);

            listElem[i]=num.nextInt();  

            }

}



//清空顺序表
public void clear(){     

    curNum=0;

    System.out.println("顺序表以清零");

}


//顺序表查找

public static  void Search(int n){

    for(int i=0;i<=listElem.length;i++){

    if(listElem[i].equals(n)){
           int b=0;
            b=i+1;
            System.out.println("你要找的数字在第"+b+"个已找到");
            break;

        }

      }

}


//移除
private static void Remove(int i) {
    // TODO Auto-generated method stub

    if((i<1)||(i>listElem.length)){
        System.out.println("删除不合法");
    }
    for(int j=i;j<listElem.length-1;j++){
        listElem[j-1]=listElem[j];
        curNum--;  //顺序表减一
        }

}


//清除顺序表中多余的元素
public static void Delete(){

    System.out.println("正在清理多余元素");

    for(int i=listElem.length;i<0;i--){

        System.out.println(i);
        if((boolean) listElem[i].equals((int) listElem[i-1])){

            System.out.println(i);

                Remove(i);
            }
        }


    System.out.println("有效元素是:");

    System.out.println(Arrays.toString(listElem));//输出数组

    System.out.println("清除完毕");

    }


public static void main(String[] args)throws Exception {
    System.out.println("创建顺序表:");

    setcurNum(5);
    Build();


    int num=0;
    System.out.println("你想查找的数是:");
    Scanner num1=new Scanner(System.in);
    num=num1.nextInt();
    Search(num);

    Delete();

    num1.close();

}

}
图片说明

  • 写回答

3条回答 默认 最新

  • clonetx 2017-10-05 08:21
    关注

    int i=listElem.length;i<0;i--,注意循环条件

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 怎么获取下面的: glove_word2id.json和 glove_numpy.npy 这两个文件
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug