教你如何使用Java輸出各種形狀
1、輸出矩形
以此矩形案例(4行,9列的矩形)為例
public static void main(String[] args) { //輸出矩形 for (int i = 1; i <= 4; i++) {//控制行,即4行 for (int j = 1; j <= 9; j++) {//控制輸出的*的個(gè)數(shù),每行9個(gè) System.out.print("*"); } //換行 System.out.println(); } }
輸出結(jié)果:
*********
*********
*********
*********
2、前面有空格的矩形
以此矩形案例(4行,9列的矩形)為例
public static void main(String[] args) { //輸出前面有空格矩形 for (int i = 1; i <= 4; i++) {//控制行,即4行 //輸出空格 for (int k = 1; k <= 5; k++) {//控制空格,即每行開始輸出5個(gè)空格 System.out.print(" "); } for (int j = 1; j <= 9; j++) {//控制輸出的*的個(gè)數(shù),每行9個(gè) System.out.print("*"); } //換行 System.out.println(); } }
輸出結(jié)果:
*********
*********
*********
*********
3、輸出平行四邊形
以此矩形案例(4行,9列的矩形)為例,要變成平行四邊形
- 第一行前面輸出8個(gè)空格
- 第二行前面輸出7個(gè)空格
- 第三行前面輸出6個(gè)空格
- 第四行前面輸出5個(gè)空格
********* 1 8 ********* 2 7 ********* 3 6 ********* 4 5
綜上所述,得出規(guī)律:行數(shù)+空格數(shù)=9
public static void main(String[] args) { //輸出平行四邊形 for (int i = 1; i <= 4; i++) {//控制行,即4行 //輸出空格 for (int k = 1; k <= 9 - i; k++) {//控制空格,行數(shù)+空格數(shù)=9,即每行開始輸出9-i個(gè)空格 System.out.print(" "); } for (int j = 1; j <= 5; j++) {//控制輸出的*的個(gè)數(shù),每行5個(gè) System.out.print("*"); } //換行 System.out.println(); } }
輸出結(jié)果:
*****
*****
*****
*****
4、輸出三角形
以此案例(4行)為例,要變成三角形
- 第一行前面輸出8個(gè)空格,1個(gè)星
- 第二行前面輸出7個(gè)空格,3個(gè)星
- 第三行前面輸出6個(gè)空格,5個(gè)星
- 第四行前面輸出5個(gè)空格,7個(gè)星
* 1 8 1 *** 2 7 3 ***** 3 6 5 ******* 4 5 7
綜上所述,得出規(guī)律:行數(shù)+空格數(shù)=9,2x行數(shù)-1=星的個(gè)數(shù)
public static void main(String[] args) { //輸出三角形 for (int i = 1; i <= 4; i++) {//控制行,即4行 //輸出空格 for (int k = 1; k <= 9 - i; k++) {//控制空格,行數(shù)+空格數(shù)=9,即每行開始輸出9-i個(gè)空格 System.out.print(" "); } for (int j = 1; j <= 2 * i - 1; j++) {//控制輸出的*的個(gè)數(shù),2x行數(shù)-1=星的個(gè)數(shù),即每行2 * i -1個(gè)星 System.out.print("*"); } //換行 System.out.println(); } }
輸出結(jié)果:
*
***
*****
*******
5、輸出菱形
此案例由上面三角形(4行)和下面倒三角形(3行)組合,變成菱形
上面三角形
第一行前面輸出8個(gè)空格,1個(gè)星
第二行前面輸出7個(gè)空格,3個(gè)星
第三行前面輸出6個(gè)空格,5個(gè)星
第四行前面輸出5個(gè)空格,7個(gè)星
下面倒三角形
- 第一行前面輸出6個(gè)空格,5個(gè)星
- 第二行前面輸出7個(gè)空格,3個(gè)星
- 第三行前面輸出8個(gè)空格,1個(gè)星
* 1 8 1 *** 2 7 3 ***** 3 6 5 ******* 4 5 7 ***** 1 6 5 *** 2 7 3 * 3 8 1
綜上所述,得出規(guī)律:上面三角形,行數(shù)+空格數(shù)=9,2x行數(shù)-1=星的個(gè)數(shù);下面倒三角形,行數(shù)+5=空格數(shù),7-2x行數(shù)=星的個(gè)數(shù)
public static void main(String[] args) { //輸出上面三角形 for (int i = 1; i <= 4; i++) {//控制行,即4行 //輸出空格 for (int k = 1; k <= 9 - i; k++) {//控制空格,行數(shù)+空格數(shù)=9,即每行開始輸出9-i個(gè)空格 System.out.print(" "); } for (int j = 1; j <= 2 * i - 1; j++) {//控制輸出的*的個(gè)數(shù),2x行數(shù)-1=星的個(gè)數(shù),即每行2 * i -1個(gè)星 System.out.print("*"); } //換行 System.out.println(); } //輸出下面倒三角形 for (int i = 1; i <= 3; i++) {//控制行,即3行 //輸出空格 for (int k = 1; k <= i + 5; k++) {//控制空格,行數(shù)+5=空格數(shù),即每行開始輸出i+5個(gè)空格 System.out.print(" "); } for (int j = 1; j <= 7 - 2 * i; j++) {//控制輸出的*的個(gè)數(shù),7-2x行數(shù)=星的個(gè)數(shù),即每行7 - 2 * i個(gè)星 System.out.print("*"); } //換行 System.out.println(); } }
輸出結(jié)果:
*
***
*****
*******
*****
***
*
5、輸出空心菱形
此案例由上面三角形(4行)和下面倒三角形(3行)組合,變成菱形,中間星形由空格代替
*
* *
* *
* *
* *
* *
*
得出規(guī)律:在輸出星的地方,每行第一個(gè)和最后一個(gè)輸出星,其余輸出空格
public static void main(String[] args) { //輸出上面三角形 for (int i = 1; i <= 4; i++) {//控制行,即4行 //輸出空格 for (int k = 1; k <= 9 - i; k++) {//控制空格,行數(shù)+空格數(shù)=9,即每行開始輸出9-i個(gè)空格 System.out.print(" "); } for (int j = 1; j <= 2 * i - 1; j++) {//控制輸出的*的個(gè)數(shù),2x行數(shù)-1=星的個(gè)數(shù),即每行2 * i -1個(gè)星 //在首和尾輸出星,其余輸出空格 if (j == 1 || j == 2 * i - 1) { System.out.print("*"); } else { System.out.print(" "); } } //換行 System.out.println(); } //輸出下面倒三角形 for (int i = 1; i <= 3; i++) {//控制行,即3行 //輸出空格 for (int k = 1; k <= i + 5; k++) {//控制空格,行數(shù)+5=空格數(shù),即每行開始輸出i+5個(gè)空格 System.out.print(" "); } for (int j = 1; j <= 7 - 2 * i; j++) {//控制輸出的*的個(gè)數(shù),7-2x行數(shù)=星的個(gè)數(shù),即每行7 - 2 * i個(gè)星 //在首和尾輸出星,其余輸出空格 if (j == 1 || j == 7 - 2 * i) { System.out.print("*"); } else { System.out.print(" "); } } //換行 System.out.println(); } }
輸出結(jié)果:
*
* *
* *
* *
* *
* *
*
6、輸出正方形
以此案例(5行,5列的正方形)為例
public static void main(String[] args) { //輸出正方形 int len = 5;//正方形邊長(zhǎng) for (int i = 1; i <= len; i++) {//控制行,即4行 for (int j = 1; j <= len; j++) {//輸出星,即每行輸出j個(gè)星 System.out.print("*"); } //換行 System.out.println(); } }
輸出結(jié)果:
*****
*****
*****
*****
*****
7、輸出實(shí)心菱形
以此案例(5行,5列)為例
- 第一行第一個(gè)和最后一個(gè)星的位置是3和3
- 第二行第一個(gè)和最后一個(gè)星的位置是2和4
- 第三行第一個(gè)和最后一個(gè)星的位置是1和5
- 第四行第一個(gè)和最后一個(gè)星的位置是2和4
- 第五行第一個(gè)和最后一個(gè)星的位置是3和3
* 1 3 3 *** 2 2 4 ***** 3 1 5 *** 4 2 4 * 5 3 3
public static void main(String[] args) { //輸出實(shí)心菱形 int len = 5;//邊長(zhǎng) int first = len / 2 + 1;//開始輸出星的位置 int end = len / 2 + 1;//結(jié)束輸出星的位置 boolean flag = true;//如果是上半部三角形則是true,如果是下半倒三角形則是false for (int i = 1; i <= len; i++) {//控制行,即4行 for (int j = 1; j <= len; j++) {//輸出星,即每行輸出j個(gè)星 if (j >= first && j <= end) {//在每行的起始至結(jié)束位置輸出星 System.out.print("*"); } else { System.out.print(" "); } } //換行 System.out.println(); if(end == len){//最后一個(gè)星位置是邊長(zhǎng)寬度 flag = false;//下一行,馬上執(zhí)行下半部倒三角形 } if(flag){ //在上半三角形,開始輸出星的位置first前移1,結(jié)束輸出星的位置end后移1 first--; end++; }else { //在下半倒三角形,開始輸出星的位置first后移1,結(jié)束輸出星的位置end前移1 first++; end--; } } }
輸出結(jié)果:
*
***
*****
***
*
如果想輸出空心菱形則只需要將:
if (j >= first && j <= end)
改成:
if (j == first || j == end)
到此這篇關(guān)于教你如何使用Java輸出各種形狀的文章就介紹到這了,更多相關(guān)Java輸出形狀內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java模板引擎Thymeleaf和前端vue的區(qū)別及說(shuō)明
這篇文章主要介紹了java模板引擎Thymeleaf和前端vue的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11java中使用雙向鏈表實(shí)現(xiàn)貪吃蛇程序源碼分享
這篇文章主要介紹了java中使用雙向鏈表實(shí)現(xiàn)貪吃蛇程序源碼分享,本文直接給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03Spring?Boot集成validation實(shí)現(xiàn)參數(shù)校驗(yàn)功能
Bean?Validation?是一個(gè)運(yùn)行時(shí)的數(shù)據(jù)驗(yàn)證框架,在驗(yàn)證之后驗(yàn)證的錯(cuò)誤信息會(huì)被馬上返回,這篇文章主要介紹了Spring?Boot集成validation實(shí)現(xiàn)參數(shù)校驗(yàn)功能,需要的朋友可以參考下2024-05-05SpringBoot設(shè)置接口超時(shí)時(shí)間的方法
這篇文章主要介紹了SpringBoot設(shè)置接口超時(shí)時(shí)間的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08java實(shí)現(xiàn)ssh連接服務(wù)器的方法步驟
本文主要介紹了java實(shí)現(xiàn)ssh連接服務(wù)器的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09簡(jiǎn)單實(shí)現(xiàn)java抽獎(jiǎng)系統(tǒng)
這篇文章主要教大家如何簡(jiǎn)單實(shí)現(xiàn)java抽獎(jiǎng)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01java封裝空值建議使用Optional替代null的方法示例解析
這篇文章主要為大家介紹了java封裝空值建議使用Optional替代null的方法原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Java日期毫秒值和常見日期時(shí)間格式相互轉(zhuǎn)換方法
這篇文章主要給大家介紹了關(guān)于Java日期毫秒值和常見日期時(shí)間格式相互轉(zhuǎn)換的相關(guān)資料,在Java的日常開發(fā)中,會(huì)隨時(shí)遇到需要對(duì)時(shí)間處理的情況,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2023-07-07