【问题标题】:Program returning blinking Cursor程序返回闪烁的光标
【发布时间】:2016-01-12 16:52:09
【问题描述】:

所以我使用冒泡排序和 compareTo 方法进行排序方法

然而由于某种原因,当我运行它编译的程序时,它没有任何错误,并在程序中显示一个闪烁的光标(好像你要输入一些东西;你可以,只是当你按下 enter 时没有任何反应) 并且此光标一直闪烁。

这里有什么问题? (代码根据老师的指示)

public static void sort(ArrayList al)
 {     
   Person p,p1,p2;
   String a1,a2;

   boolean flag = true;

   System.out.println("Database will be sorted acc to ID ");
   System.out.println();

    do
    {
        flag = false;

        for (int i=0;i<al.size()-1;i++)    
        {
            p = (Person)al.get(i);

             a1=((Person)al.get(i)).personID;
             a2=((Person)al.get(i+1)).personID;

            if (a1.compareTo(a2) > 0){
                p1= (Person)al.get(i);
                p2 =(Person)al.get(i+1);                
        }
    } 
  } 
    while (flag = true); 

if (flag = false)
    {
        for (int i = 0; i < al.size(); i++)
   {
       p = (Person) al.get(i);

       System.out.println("----------" + (i+1) + "-----------");

       System.out.println("ID Number: "+ p.personID);
       System.out.println("Name: "+ p.name);
       System.out.println("Day of Birth: " +p.dayDOB);
       System.out.println("Month of Birth: " +p.monthDOB);
       System.out.println("Year of Birth: " +p.yearDOB);
       System.out.println("Telephone Number: " +p.telNum);
       System.out.println("");
    }
}

【问题讨论】:

    标签: bubble-sort bluej compareto


    【解决方案1】:

    问题出在这个循环中:

    do
    {
    ....
    } 
    while (flag = true); 
    

    您想将flagtrue 进行比较,即flag == true,但您 flag 设置为trueflag = true。因此,循环不会退出,而是永远运行(或直到您终止程序)。

    您在下面的if 语句中遇到了同样的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 2014-09-30
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      相关资源
      最近更新 更多