最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java打印菱形及直角和等腰三角形的方法

 更新時間:2023年05月22日 08:52:39   作者:鎧冢?霙  
用Java輸出菱形本身是一個比較簡單的問題,這是Java初學(xué)者都要編寫的一個算法,下面這篇文章主要給大家介紹了關(guān)于java打印菱形及直角和等腰三角形的方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

本文講述如何用Java打印一個菱形,以及打印直角和等腰三角形的方法, 本文教程比較詳細,如果想要直接學(xué)習菱形可以直接翻到本文最下方!?。?/p>

左下角三角形

(這里說的方位均是對應(yīng)矩形來說)

int a = 5;
for (int i = 0; i < a; i++) {
    for (int j = 0; j < i; j++) {
        System.out.print("*");
    }
            System.out.println();
}

這段代碼將輸出如下圖形,,其中i<?控制輸出行數(shù),j<?控制輸出列數(shù)

這里j<i,且關(guān)于j的循環(huán)嵌套在關(guān)于i的遞增循環(huán)里,所以列數(shù)(也是每行的數(shù)量)會隨著行數(shù)的增加而增加,最終形成一個左下角方位的三角形

(這里輸出*號語句要用System.out.print();避免換行。最下面的 System.out.println()是起換行作用; )

右下角三角形

int a = 5;
for (int i = 0; i <= a; i++) {
    for (int k = a; k > i; k--) {
        System.out.print(" ");
     }
     for (int j = 0; j < i; j++) {
         System.out.print("*");
      }
      System.out.println();
}

這段代碼將輸出如下圖形,這里增加了一個關(guān)于k的for循環(huán),它的作用是在原本左下角的基礎(chǔ)上在每行輸出的*號之前增加空格,注意這里輸出空格同樣使用System.out.print();避免換行,因為k的循環(huán)是k--的遞減循環(huán),所以從i開始遞減輸出空格,就會形成一盒右下角的三角形。

正等腰三角形

        int a = 5;
        for (int i = 0; i <= a; i++) {
            for (int k = a; k > i; k--) {
                System.out.print(" ");
            }
            for (int j = 0; j < 2*i-1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

這段代碼將輸出如下結(jié)果,觀察下面的實際輸出圖片就會發(fā)現(xiàn)其實很好理解,只是將原來的右下角三角形輸出的*號改為了1、3、5、7、9的奇數(shù)排列,我們可以利用規(guī)律,將控制每行數(shù)量的j改為2*i-1實現(xiàn),同理利用不同公式可以控制每行的數(shù)量。

實際全部輸出為

這里我們已經(jīng)解決了菱形的上半部分

左上角三角形

int a =5 ;
for (int i = 0; i < a; i++) {
    for (int j = a; j > i; j--) {
        System.out.print("*");
    }
    System.out.println();
}

這段代碼將輸出如下結(jié)果,左上角就是倒過來打印左下角三角形,所以只需要讓每行的*號遞減即可,所以只用改變關(guān)于j的循環(huán)就可,讓其初始值為最大,并將迭代器改為j--就可以實現(xiàn)此效果

右上角三角形

int len =5 ;
for (int i = 0; i < len; i++) {
    for (int k = 0; k < i; k++) {
        System.out.print(" ");
    }
    for (int j = len; j > i; j--) {
        System.out.print("*");
    }
    System.out.println();
}

這段代碼講輸出如下結(jié)果,這與左下三角和右下三角的本質(zhì)相似,就是在輸出的*號前面增加空格,不過這里是倒敘輸出,那么相應(yīng)輸出空格的程序也要反過來。

倒等腰三角形

int a =5 ;
for (int i = a; i > 0; i--) {
    for (int k = a; k >= i; k--) {
        System.out.print(" ");
    }
    for (int j = 2*i-1; j > 0; j--) {
        System.out.print("*");
    }
    System.out.println();
}

這段代碼將輸出如下結(jié)果,對比全部輸出內(nèi)容,可以看到原理與正等腰三角類似,只是顛倒輸出順序,就不過多贅述這個問題了。

菱形

實際上菱形就是一正一反兩個三角形拼接而成,拆解過后,我們就知道可以通過輸出正反等腰三角形就可以組成菱形。

int a = 5;
//正等腰三角形
for (int i = 0; i < a; i++) {
    for (int l = a; l > i; l--) {
        System.out.print(" ");
    }
    for (int j = 0; j < 2*i-1; j++) {
        System.out.print("*");
    }
    System.out.println();
}
//倒等腰三角形
for (int i = a-1; i > 0; i--) {
    for (int k = a; k >= i; k--) {
        System.out.print(" ");
    }
    for (int j = 2*i-3; j > 0; j--) {
        System.out.print("*");
    }
    System.out.println();
}

這段代碼將輸出如下結(jié)果,兩個三角形輸出的原理上面有詳細解析,這里講需要注意的地方,

輸出下面的三角形的時候要將行數(shù)(即i的初始值)減去1,因為菱形中間的轉(zhuǎn)折線要比上下兩邊都長,我們已經(jīng)使用了上面的最長邊,下面的三角形就應(yīng)該省略,減去1后在開始(也可以讓上面減少一次輸出)。

2.因為行數(shù)減1了,所以對應(yīng)的輸出數(shù)量也要減掉,因為每行是增加2個,所以每一行輸出的數(shù)量都應(yīng)該額外減去2,所以j的初始值應(yīng)該是2i-3;

這就是利用java輸出一個菱形的方法,希望對大家有所幫助?。?!

總結(jié)

到此這篇關(guān)于java打印菱形及直角和等腰三角形的文章就介紹到這了,更多相關(guān)java打印菱形內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis-Plus條件構(gòu)造器之condition參數(shù)的使用

    MyBatis-Plus條件構(gòu)造器之condition參數(shù)的使用

    這篇文章主要介紹了MyBatis-Plus條件構(gòu)造器之condition參數(shù)的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-12-12
  • java冷知識:javac AbstractProcessor詳解

    java冷知識:javac AbstractProcessor詳解

    這篇文章主要介紹了java冷知識:javac AbstractProcessor詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 輕松掌握Java單例模式

    輕松掌握Java單例模式

    這篇文章主要幫助大家輕松掌握Java單例模式 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • SpringBoot快速整合RabbitMq小案例(使用步驟)

    SpringBoot快速整合RabbitMq小案例(使用步驟)

    這篇文章主要介紹了SpringBoot快速整合RabbitMq小案例,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • JavaWeb實戰(zhàn)之編寫單元測試類測試數(shù)據(jù)庫操作

    JavaWeb實戰(zhàn)之編寫單元測試類測試數(shù)據(jù)庫操作

    這篇文章主要介紹了JavaWeb實戰(zhàn)之編寫單元測試類測試數(shù)據(jù)庫操作,文中有非常詳細的代碼示例,對正在學(xué)習javaweb的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-04-04
  • IDEA中Git暫存代碼暫存區(qū)的用法及說明

    IDEA中Git暫存代碼暫存區(qū)的用法及說明

    本文介紹了在使用IDEA進行代碼開發(fā)時,遇到需要解決緊急bug的情況,為了不影響其他分支的開發(fā),可以使用IDEA的暫存功能或通過Git命令來暫存當前代碼狀態(tài),以便后續(xù)修改優(yōu)化,最后再讀取暫存的代碼
    2026-04-04
  • redis中存儲list<map>,list<entity>的處理

    redis中存儲list<map>,list<entity>的處理

    本文主要介紹了redis中存儲list<map>,list<entity>的處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2024-06-06
  • Java?Chassis3熔斷機制的改進路程技術(shù)解密

    Java?Chassis3熔斷機制的改進路程技術(shù)解密

    這篇文章主要介紹了Java?Chassis?3技術(shù)解密之熔斷機制的改進路程實例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 一文詳細講解Java的父子繼承、方法的重寫與super關(guān)鍵字

    一文詳細講解Java的父子繼承、方法的重寫與super關(guān)鍵字

    Java中繼承是通過extends關(guān)鍵字實現(xiàn),幫助減少代碼重復(fù),提高復(fù)用性,子類繼承父類的屬性和方法,但私有成員除外,方法重寫(override)使子類改造父類方法以適應(yīng)新功能,這篇文章主要介紹了Java的父子繼承、方法的重寫與super關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下
    2024-10-10
  • Java?Lambda表達式語法及用法示例

    Java?Lambda表達式語法及用法示例

    這篇文章主要給大家介紹了關(guān)于Java?Lambda表達式語法及用法的相關(guān)資料,lambda表達式是JAVA8中提供的一種新的特性,它支持Java也能進行簡單的"函數(shù)式編程",文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10

最新評論

南乐县| 平罗县| 明星| 厦门市| 璧山县| 盘山县| 中牟县| 文成县| 怀宁县| 巴青县| 景宁| 明水县| 京山县| 邵阳县| 景宁| 合山市| 会宁县| 额敏县| 塔城市| 武鸣县| 云梦县| 河间市| 察哈| 勐海县| 公安县| 郁南县| 孟村| 天长市| 株洲县| 兴化市| 广安市| 舟山市| 通州市| 天峻县| 钟祥市| 拉孜县| 南陵县| 监利县| 新丰县| 阿鲁科尔沁旗| 密山市|