通過for語法打印九九乘法表


  1. 首先定義for語句的初始值,判定循環條件以及迭代;

初始值應當為1;乘法表最大數值為9,所以判定條件是a小於等於9;每完成一個循環a會加1;

for (int a = 1 ; a <= 9; a++){
  System.out.println(1 + "*" + a + "=" + a*1);
  }

在第一個循環當中,a以a=1的身份參與進了運算,即此時輸出的結果是1*1=1,完成第一次循環后a會先加1(a++)再判定,判斷符合條件后再次進入循環體,輸出結果是1 * 2 = 2;一直循環至a=9,輸出的結果是1 * 9 = 9

此處也可以理解為:先將九九乘法表的第一列輸出出來。

  1. 此時的1*a中,因為a會從1循環到9,所以才會生成以上乘法表的第一列,1是定死的。那么,如果1本身也成為了一個可以循環的變量,在1計算完從1 * 1到 1 * 9 的計算之后,前者循環至2 ,然后在進行從2 * 2到2 * 9 的循環計算,以此類推,直到9 * 9,這是否可行呢?

我們再定義一個for循環,初始值同樣為1;乘法表最大數值為9,所以判定條件b同樣小於等於9;每完成一個循環b會加1;

for (int b = 1 ; b<=9 ; b++) {
  for (int a = 1; a <= 9; a++) {
      System.out.println(b + "*" + a + "=" + b * a);
  }
}

將”b循環“嵌套在“a循環”上,同時,將本來a循環內的 1 * a 中的 “1” 替換成 “b”。

修改之后的循環是,b以等於1的身份參與到 a循環里,然后開始了類似上一步的循環:開始輸出 1 * 1 = 1 ; 1 * 2 = 2...... 1 * 9 = 9;當本輪a循環結束后, b的值會加1(b++);也就是2;經過判定條件 b<= 9的“確認”后,再次進入a循環開始輸出2 * 1 = 2; 2*2 = 4 ; ...... 2 * 9 = 18 ;本輪a循環結束后, b的值會再次加1;也就是3;以此類推,直至循環至 9 * 9 = 81,b循環與a循環均循環結束。

fd4622e32900b123413994620031d4b.png

b68dea0051ae18a6cadd6a194208eed.png

但很明顯, 輸出的乘法出現了重復,在乘法表中,第二個乘數始終不大於第一個乘數,也就是在代碼里,a應該小於等於 b。

所以,我們將a循環 的判定條件修改為 a <= b

修改前:

2a99ae3797328cec44b196240cb61bf.png

修改后:

for (int b = 1 ; b<=9 ; b++) {
  for (int a = 1; a <= b; a++) {
      System.out.println(b + "*" + a + "=" + b * a);
  }
}

此時的循環是,b以等於1的身份參與到 a循環里,輸出 1 * 1 = 1 ;但因為a<=b,a+1的結果無法通過判定條件,所以本輪a循環結束;當本輪a循環結束后, b的值會加1(b++);也就是2;經過判定條件 b<= 9的“確認”后,再次進入a循環開始輸出2 * 1 = 2; 2*2 = 4 ,而后本輪a循環再次結束;b再次加一等於3,而后3 * 1 =3...... ;以此類推,直至循環至 9 * 9 = 81,b循環與a循環均循環結束。

  1. 至此,九九乘法表的所有計算已經全部輸出,只剩下最后的修飾了。

先將輸出語句的println中的ln去掉,改為橫向輸出

for (int b = 1 ; b<=9 ; b++) {
  for (int a = 1; a <= b; a++) {
      System.out.print(b + "*" + a + "=" + b * a);
  }
}

再在循環體內后加一個空格的轉義字符,使每個乘法間加以區分

for (int b = 1 ; b<=9 ; b++) {
  for (int a = 1; a <= b; a++) {
      System.out.print(b + "*" + a + "=" + b * a + "\t");
  }
}

再使每結束一次a循環就換一次行,換行的方法可以是在b循環語句內a循環語句后加上一個空的println輸出語句

for (int b = 1 ; b<=9 ; b++) {
  for (int a = 1; a <= b; a++) {
      System.out.print(b + "*" + a + "=" + b * a + "\t");
  }
  System.out.println();
}

至此,九九乘法表輸出完畢.當然,如果看的不順眼可以將a 和 b 的位置調換一下

for (int b = 1 ; b<=9 ; b++) {
  for (int a = 1; a <= b; a++) {
      System.out.print(a + "*" + b + "=" + b * a + "\t");
  }
  System.out.println();
}
c828c6a1199ff4cdcaad2e16e2d29cc.png

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM