请大家帮我看看哪里出问题了,老是循环不完..
public class jiaogu
{
  public static void main(String args[])
  {
    int i,j,count=0;
    for(i=3;i<=4;i++)
    {
      while(i!=1)
      {
        if(i%2==0)
        {
          
          i=i/2;
          System.out.println("["+(++count)+"]: "+2*i+"/2="+i);
        } 
        else 
        {
          i=i*3+1;
          System.out.println("["+(++count)+"]: "+(i-1)/3+"*3+1="+i);  
        } 
      }
  
    } 
  }
}

解决方案 »

  1.   

    我用for循环控制了i的增加的啊
    while里面就是角谷算法
      

  2.   

    public class jiaogu
    {
    public static void main(String args[])
    {
    int i,j,count=0;
    for(j=3;j<=4;j++)
    {
    i=j;
    while(i!=1)
    {
    if(i%2==0)
    {
    i=i/2;
    System.out.println("["+(++count)+"]: "+2*i+"/2="+i);

    else 
    {
    i=i*3+1;
    System.out.println("["+(++count)+"]: "+(i-1)/3+"*3+1="+i); 
    }
    }

    }
    }你原来的程序,每次算到i=1时,外层for循环又用i++把i置为2了,因此死循环;
    其实你本来就申请了变量j了,为什么没有用呢?笔误吧。。
      

  3.   

    看错,
    当i=2时,i=i/2;=》i=1
    退到上一层,i=2再次i!=1;=》i=i/2;=》i=1就这么循环下去了