仅使用while回圈印出九九乘法表

Home Home
引用 | 编辑 知名不具
2005-08-15 20:35
楼主
推文 x0
仅使用while回圈印出如下之九九乘法表:


我用for回圈写,可以成功印出

class NineNine_ForLoop
{
public static void main(String[] args)
{
for (int i=1; i<=9; i++)
{
for (int j=1; j<=9; j++)
{
System.out.print(i + "*" + ..

访客只能看到部份内容,免费 加入会员



献花 x0
引用 | 编辑 panasonic732
2005-08-15 20:46
1楼
  
呵呵...你跟着程式跑一圈就知道了
仔细看看就知道了,我先保密噜

献花 x0
引用 | 编辑 mychatmychat
2005-08-15 20:54
2楼
  
先说好,我不会java,但有一点点C的基础,只有一点点…

你那个 j 的回圈,j 到10之后,没有再把它归为1,
它只有愈加愈大,难怪只印出 i 为1的那一行!
我说的应该没有错吧? 表情

献花 x0
引用 | 编辑 mychatmychat
2005-08-15 20:56
3楼
  
我说错了,j=10之后,就不会再加下去了! 表情

献花 x0
引用 | 编辑 知名不具
2005-08-15 21:08
4楼
  
下面是引用panasonic732于2005-08-15 20:46发表的 :
呵呵...你跟着程式跑一圈就知道了
仔细看看就知道了,我先保密噜
如果我没想错的话,
i=1符合条件式 i<=9→进入第一层回圈→执行第二层回圈→j=1符合第二层条件式j<=9→
执行System.out.print(i + "*" + j + "=" + i*j + '\t');→执行 j++;→ j=2→跳回第二层回圈→
j=2符合第二层条件式j<=9→执行System.out.print(i + "*" + j + "=" + i*j + '\t');........
印出
1*1=1      1*2=2      1*3=3      1*4=4      1*5=5      1*6=6      1*7=7      1*8=8      1*9=9
→执行 j++→ j=10不符合第二层条件式j<=9→跳出第二层→执行 i++→ i=2→跳回第一层回圈

我是这样想的...有没有错?

献花 x0
引用 | 编辑 知名不具
2005-08-17 09:25
5楼
  
我知道了,因为第一圈以后,
j++之后,j的值为10,
所以要跑第二圈时,
他就不会再去跑第二层回圈了

献花 x0
引用 | 编辑 珀琥
2005-08-22 18:31
6楼
  
复制程式
#include<stdio.h>
main()
{
      int a=1,b=1;
      do{
      do{
      printf("%d*%d=%2d  ",a,b++,a*b);
      }while(b!=10);
      b=1;
      printf("\n");
      a=a+1;
      }while(a!=10);
      system("pause");
      }


献花 x0
引用 | 编辑 yuanhong37
2005-09-07 13:52
7楼
  
我想这应该就是你要的正确答案吧,java版
复制程式
public class NineNine_WhileLoop
{
       public static void main(String[] args) 
       {
              int i=1;
              while (i<=9)
              {
                             int j = 1;
                     while (j<=9)
                     {
                            System.out.print(i + "*" + j + "=" + i*j + '\t');
                            j++;
                     }
                     i++;
                     System.out.println("");
              }
       }
}


献花 x0