計算乘法表 兩個數相乘,外層迴圈代表被乘數,控制行數;內層代表乘數,控制列數。 迴圈嵌套,變數名不可以重覆。 使用 break 語句讓輸出的乘法表更簡潔。 使用 String 變數,做 String 的加法。 (未完待續……) ...
計算乘法表
- 兩個數相乘,外層迴圈代表被乘數,控制行數;內層代表乘數,控制列數。
- 迴圈嵌套,變數名不可以重覆。
- 使用 break 語句讓輸出的乘法表更簡潔。
- 使用 String 變數,做 String 的加法。
public class MultiTabble { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { // 控制行 被乘數 String line = ""; for (int j = 1; j <= 9; j++) { // 控制列 乘數 line += i + "*" + j + "=" + i * j + "\t"; // 利用字元串的加法將結果連接起來 } System.out.println(line); } } }
我們發現運算結果,有大量的重覆結果,例如1*2和2*1、1*3和3*1等等。
這是不符合乘法口訣表的擺放規則的。
那麼這時我們就要想辦法把重覆的等式去掉。
通過觀察,在 i * j 的形式下,只要去掉 j 大於 i 的等式即可滿足要求。
如何實現呢?
利用 break 語句跳出迴圈的這一特性來實現:當發現 j > i 時,就會跳出當前一層的迴圈(也就是這裡的關於 j 的內迴圈),到達外層迴圈(關於 i 的外迴圈)。
public class MultiTabble { public static void main(String[] args) { for (int i = 1; i <= 9; i++) { // 控制行 被乘數 String line = ""; for (int j = 1; j <= 9; j++) { // 控制列 乘數 if (j > i) { break; // 利用break跳出迴圈的操作解決重覆問題 } line += i + "*" + j + "=" + i * j + "\t"; // 利用字元串的加法將結果連接起來 } System.out.println(line); } } }
除了上面的一種方法以外,還有一個更加簡單的方法實現乘法表。
就是讓內迴圈中的變數 j 只要小於等於外迴圈的 i 即可。
這樣內迴圈就不會超過外迴圈的最大數值,
例如,i 的值為 5,j 的值就只能是1,2,3,4,5. 這就解決了等式重覆的問題。
public class MultiTable2 { public static void main(String[] args) { for(int i = 1; i <= 9; i++) { String line = ""; for( int j = 1; j <= i; j++) { line += i + "*" + j + "=" + (i*j) + "\t"; } System.out.println(line); } } }