這星期的作業是寫雙層For … Next的迴圈,
作業內容為做出九九乘法表。
在想像中做出九九乘法表就是上下兩排,
上排是1?5,下排是6?9,
就如同小時候墊板後面的九九乘法表一樣!
但剛開始怕寫不出這麼困難的,想說先寫一直排的就好,
有時間再來修正,於是不知不覺把兩種都做出來了。
簡單版的一直排的九九乘法表,
利用主控台應用程式寫的內容。
先設九九乘法表中前位數為x,後位數為y,結果為x*y。
依照此直排的九九乘法表,
x為1時,y為1?9;
x為2時,y為1?9;
依此類推….
因此在外圈的迴圈寫x=1,內圈的y即會從1跑到9,
接下來外圈的x為2時,內圈的y也會從1跑到9,
每跑一行就要換行,因此要用函數console.writeline(),
故寫法如下。
1 2 3 4 5 6 7 8 9 | Dim x, y, result As Integer For x = 1 To 9 For y = 1 To 9 result = x * y Console.WriteLine("{0}x{1}={2}", x, y, result) Next Console.WriteLine("") Next Console.Read() |
需要排版成如同墊板背面的九九乘法表的形式如下,
利用主控台應用程式寫的內容。
一樣先將九九乘法表中的前衛數設為x,後位數設為y,結果為x*y。
由這次要一次寫完第一列再做換行的動作,
所以第一列的x分別為1、2、3、4、5,而y皆為1,
第二列的x依舊為1、2、3、4、5,而y皆為2,
依此類推…
因此先將外圈固定不動,以y當作外圈,會變動的x當成內圈,
當y=1時,內圈的x會從1跑到5,
當y=2時,內圈的x也是從1跑到5,
依此持續到y等於9,才換到底下的6?9的乘法表,寫法一樣。
由於在寫同一列內圈x從1跑到5,外圈y是1時不需要換行,因此使用函數console.write(),
而當跑完後需要換列到第二列時,則使用函數console.writeline(),
再繼續跑內圈x從1跑到5,外圈y是2,
寫法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Dim x, y, result As Integer For y = 1 To 9 For x = 1 To 5 result = x * y Console.Write("{0}x{1}={2} ", x, y, result) If result < 10 Then Console.Write(" ") End If Next Console.WriteLine("") Next Console.WriteLine("") For y = 1 To 9 For x = 6 To 9 result = x * y Console.Write("{0}x{1}={2} ", x, y, result) If result < 10 Then Console.Write(" ") End If Next Console.WriteLine("") Next Console.Read() |