僅使用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