wang2046783134
2015-08-07 07:20
采纳率: 100%
浏览 1.9k
已采纳

java线程的循环跳出问题

做了一个线程的试验,结果不能跳出for循环,怎么回事?望解答

 public class Mythread {

    public static void main(String[] args) {

        new Extendsthread("wo");
        new Extendsthread("my");
        Thread m=Thread.currentThread();

        System.out.println("this is main thread...." 
        + "     " + m.getName());
        System.out.println("the next express:   " + m);
    }

}

class Extendsthread extends Thread{

    Thread t;
    Extendsthread(String name){
        t=new Thread(this,name);
        t.start();
    }

    public void run(){
        for(int i=0;i<5;i++){
            System.out.println(t.getName()+i);

            if(t.getName()=="wo")
                break;

            System.out.println("skip break!!!!");
            System.out.println("this is child thread: " 
            + i + t +"   \n" + t.getName());

        }
    }
}
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • havedream_one 2015-08-07 14:47
    已采纳

    == 用于对象比较时比较的是内存地址,所以if是永假的;对象要用equals比较

    打赏 评论
  • jiajia756 2015-08-07 07:37

    在这里不能用break;continue,你可以试一试,不要用break,它只是打断,continue是打断后直接跳出

    打赏 评论
  • lhl_lqc 2015-08-07 07:43

    将==换成equals即可。

    打赏 评论
  • 未知账号 2015-08-07 07:54

    字符串比较要用equals 吧。。。

    打赏 评论
  • wasphere 2015-08-07 09:41

    字符串是用equals

    打赏 评论
  • Kinokol 2015-08-07 10:30

    楼上说得对,比较字符串用equals

    打赏 评论

相关推荐 更多相似问题