今天在群裡聊天的時候無意中想到剛學Java的時候寫的乘法表,於是隨手就寫了個9x9,感覺還是蠻有意思的,在這裡我分享下代碼,並寫一下關於9x9的故事。
先上代碼:
public class MyTest {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "x" + i + "=" + i * j + " ");
}
//換行
System.out.println();
}
}
}
代碼還是很簡單的吧~ 兩個for循環,第一個for循環是循環行數,第二個for循環是循環每一行打印的乘法口訣(例如:1x1=2),循環都是從1開始,到9結束,代表9x9乘法表。我們在寫完一行口訣後要換一行,所以我在外循環的結束處加了一行代碼:
System.out.println();
它的作用就是換行打印。這樣我們就打印出了9行乘法口訣,如下圖:
細心的同學可能發現了一個問題,那就是3x4=12 和 3x5=15沒對齊,那麼我們怎麼解決這個問題呢?
我們觀察可以發現只有3x3=9和3x4=12沒對齊,其他的都是對齊的,那麼我們就可以在前面再加一個空格,像這樣:
public class MyTest {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
String blank = " ";
String s = j + "x" + i + "=" + i * j;
if(j == 2) {
if(i == 3 || i == 4) {
blank += " ";
}
}
System.out.print(s + blank);
}
//換行
System.out.println();
}
}
}
我在j=2,i=3;j=2,i=4;的時候加了一個判斷,在他們後面加了個空格,其效果是:
可以看到我們已經解決了不對齊的問題,變得很好看了。但是我覺得上面的代碼寫的過於囉嗦,臃腫;還可以這麼優化一下:
public class MyTest {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "x" + i + "=" + i * j + "\t");
}
//換行
System.out.println();
}
}
}
'\t'是一個製表符號,他可以自己格式化輸出,經過製表符格式化後的輸出是:
可以看到,輸出的9x9非常好看了。
下面再展示下倒序:
public class MyTest {
public static void main(String[] args) {
for (int i = 9; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "x" + i + "=" + i * j + "\t");
}
//換行
System.out.println();
}
}
}
怎麼樣,很簡單呢吧?你也可以動手試一下哦~
可獲得兩大新人禮包
36份一線互聯網Java面試電子書
84個Java稀缺面試題視頻
閱讀更多 李紅 的文章