请大家看看我以下的代码
class math1
{
   public static void main(String [] args)
     {
         for(int a=1234;a<9876;a++)
           {
               int c;
               for(int b=2;b<10;b++)
                      {
                       c=a*b;
                       if (c<10000)  //判断C<10000的话,输出
                       System.out.println(a+"*"+b+"="+c);
                     }
            }
               
       }
}
以上代码运行后,第二个for循环就停在2不++,请问应该怎么改。

解决方案 »

  1.   

    程序没有问题 第二个for里面的b 会一直++ 直到a*b>=10000才跳出 第二个循环 返回第一个循环 即 a++
    /* output:
    1670*2=3340
    1670*3=5010
    1670*4=6680
    1670*5=8350
    1671*2=3342
    1671*3=5013
    1671*4=6684
    1671*5=8355
    1672*2=3344
    1672*3=5016
    1672*4=6688
    1672*5=8360
    1673*2=3346
    1673*3=5019
    1673*4=6692
    1673*5=8365
    1674*2=3348
    1674*3=5022
    1674*4=6696
    1674*5=8370
    1675*2=3350
    1675*3=5025
    1675*4=6700
    1675*5=8375
    1676*2=3352
    1676*3=5028
    1676*4=6704....
    ....
    *///:~
      

  2.   

    最后一堆 b全是2 你没看全吧 
    最后一堆 a只有乘2 才不过你的IF条件 所以2以后的就不打印了呀。不打印不代表他没循环到2以后。只是没满足你的条件。你拉到嘴上看,就是一楼的数据就知道了。
      

  3.   

    你的程序写的没有问题出现你说的问题:if (c <10000) 限制的问题。a = 3334, b = 2 输出3334*2=6668,当b = 3的时候,c > 10000,就不输出了。
    后面依次类推。所以会出现3334*2=6668
    3335*2=6670
    3336*2=6672
    3337*2=6674
    3338*2=6676
    3339*2=6678
    3340*2=6680
    3341*2=6682
    3342*2=6684
    3343*2=6686
    3344*2=6688
    3345*2=6690
    3346*2=6692
    3347*2=6694
    3348*2=6696
    3349*2=6698
    3350*2=6700
    3351*2=6702
    3352*2=6704
    3353*2=6706
    3354*2=6708
    3355*2=6710
    3356*2=6712
    3357*2=6714
    3358*2=6716
    3359*2=6718
    3360*2=6720
    3361*2=6722
    3362*2=6724
    3363*2=6726
    3364*2=6728
      .......
      .......
      

  4.   

    可能是没看全,我把b=1,就看到不一样了。可能是我在cmd里面看不全,请问怎么才能让它全部显示完呢?
      

  5.   

    你应该是没看到前面的输出 if (c <10000)  //判断C <10000的话,输出 后面的那些b>2的情况都不符合这个条件了所以你看不到