if((nSelection=nNumber%I)==0)
I为0时nSelection为无穷大,当然会引起异常了

解决方案 »

  1.   

    同意gularess,改一下TestThread文件:
    class TestThread extends Thread
    {
    //重写run方法
    public void run()
    {
    int nSelection = 0;
    int nNumber = 10;
    boolean bFlag = true;
    while(true)
    {
    repeat:
    for(int I=1;I<=nNumber;I++)  \\将I变为1,<变为<=
    {
    if((nSelection=nNumber%I)==0)
    {
    bFlag = false;
    break repeat;
    }
    }
    if(!bFlag)  \\取反,否则下面语句一次也不能执行
    {
    System.out.println("aaa:   a");
    bFlag = true;
    }
    nNumber++;
    bFlag = true;
    }
    /*
    try
    {
    sleep(100);
    }
    catch(InterruptedException exp)
    {
    exp.printStackTrace();
    return;
    }
    */
    }
    }
      

  2.   

    哦,我改一下试试看,但还要问大家哦,
    刚才这个程序,编译可以通过的,但执行就出错,出错提示是:
    java.lang.ArithmeticException: / by zero
    at TestThread.run(TestThreadMain1.java:55)
    请教这个错误提示是什么意思啊?
    谢谢