亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java 中的金字塔模式,后跟星形后跟下劃線

Java 中的金字塔模式,后跟星形后跟下劃線

海綿寶寶撒 2022-09-07 17:25:41
我想打印以下圖案:**_**_*_**_*_*_**_*_*_*_*但這里的問題是我無法消除最后一個符號,這是我得到的輸出:_**_*_*_*_*_*_*_*_*_*_*_*_*_*_int row =5;String star="*";String undrscr="_";String s;for(int i=1;i<=row;i++){//System.out.print(undrscr);    for(int j=1;j<=i;j++)    {                   if(i==1)        {        System.out.print(star);        }        if(i>1)        {            System.out.print(star+""+undrscr);        if(j==i)        {            System.out.print("");        }        }    }    System.out.println();}
查看完整描述

4 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

將你的內在 for 循環更改為:


for (int i = 1; i <= row; i++) {

    for (int j = 1; j <= i; j++) {

        if (i == 1) {

            System.out.print(star);

        }

        if (i > 1) {

            System.out.print(star);

            if (i - 1 >= j) {              // <-- change made in this if-block only

                System.out.print(undrscr);

            }

            if (j == i) {

                System.out.print("");

            }

        }

    }

    System.out.println();

}

在打印下劃線之前,請檢查是否因為根據您的要求下劃線數始終比星數少1。i - 1 >= j


查看完整回答
反對 回復 2022-09-07
?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

試試這個..


    int row = 5;

    String star = "*";

    String undrscr = "_";

    String s;

    for (int i = 1; i <= row; i++) {

        for (int j = 1; j <= i; j++) {


            System.out.print(star);

            if (i != j)

                System.out.print(undrscr);

        }


        System.out.println();

    }


查看完整回答
反對 回復 2022-09-07
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

試試這個:


//i was the rowNum and the number of stars of that row

for (int rowNum = 0; rowNum<=rows; rowNum++) {

    int numStars = 0;

        while (numStars<rowNum) {

            System.out.print(star+undrscr);

            numStars++;

        }

        System.out.println(star);

    }

輸出:


*

*_*

*_*_*

*_*_*_*

*_*_*_*_*

*_*_*_*_*_*

編輯:最好使用這種方法,你會得到5行而不是6行。


for (int rowNum = 1; rowNum<=rows; rowNum++) {

    int numStars = 1;

    while (numStars<rowNum) {

        System.out.print(star+undrscr);

        numStars++;

    }

    System.out.println(star);

}


查看完整回答
反對 回復 2022-09-07
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

在此,星星的行數呈遞增順序(即第一行有 1 顆星,第二行為 2 顆星,依此類推)。


逐步描述性邏輯,以打印帶有下劃線圖案的直角三角形星形。


1)輸入用戶要打印的行數。我們傳遞 5 行。


2)要循環訪問行,請使用循環結構 for(i=0; i=5<; i++) 運行一個從 0 到 5 的外部循環。


3)要循環訪問列,請使用循環結構 for(j=0; j=0;< j=i; j++) 運行一個從 0 到 i 的內部循環。內部循環內部打印星形。


4)在列循環中,我們檢查i == j是否然后只打印星形,否則打印星形和下劃線。


5)打印一行的所有列后,移動到下一行,即打印新行。


 int i, j;

      for(i=0; i<5; i++)

      {

          for(j=0; j<=i; j++)

          {

             if(i==j)

             {

                 System.out.print("*");

             }

             else

             {

              System.out.print("*");

              System.out.print("_");

             }

          }

          System.out.println();

      }


查看完整回答
反對 回復 2022-09-07
  • 4 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號