91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java打印出菱形圖案實例詳解

發布時間:2020-09-29 12:34:59 來源:腳本之家 閱讀:186 作者:V 欄目:編程語言

java打印出菱形圖案實例詳解

第一步:首先對圖像進行解析

想要打印該圖形必須要進行多層循環嵌套,分兩個部分進行打印。

第一部分為上半部分前四行,他們是遞增的關系,后半部分后三行為遞減關系,由此可以得出我們需要寫兩個打的循環。并且由于“*”位置的關系,我們必須帶入空格同時打印。所以每個部分需要兩個循環控制,即兩個大循環每個里面嵌套兩個小循環總計四個循環。

第二部:對數字進行分析

在分析之前,我們必須明白外層循環控制行數,內層循環控制列數,因此我們需要分析他的行和列。

示例代碼如下:

class ForForTest {
  public static void main(String[] args) {
     
/*
輸出如下圖形:  行數i:  空格數j:  “*”數目z:
   *       1     3      1
  ***      2     2      3
  *****      3     1      5
 *******     4     0      7
  *****      1     1      5   6
  ***      2     2      3   5
   *       3     3      1   4
 */
    for (int i = 1;i <= 4;i++){
      for (int j = 1;j <= 4 - i;j++) {
        System.out.print(" ");
      }
      for (int z = 1;z <= i*2-1;z++){
        System.out.print("*");
      }
      System.out.println();
    }
    for (int i = 1;i <= 3;i++){
      for (int j = 1;j <= i;j++){
        System.out.print(" ");
      }
      int y = 3;
      for (int z = 5;z >= 2*i-1;z--){
        System.out.print("*");
      }
      System.out.println();
    }
  }
}

實例補充

import java.util.Scanner;
import java.util.regex.Matcher;
public class test01 {
private static int i;
private String ch;
public static void main(String[] args) {
    runTest();
    }
private void printBlank(int blank){//打空格
    for(int i=blank;i>=1;i--){
        System.out.print(" ");
    }
}
    private void printStar( int sum,String ch){ //打圖形
        for(int i=sum;i>=1;i--){
            System.out.print(ch);
        }
    }
    private void printTab(){ //打回車
        System.out.println();
    }
    private void run(int level,String ch){//綜合打
        if(ch.length()==1){
            for(i=1;i<=(level+1)/2;i++){
                if(i==1){
                    printBlank((level+1)/2-i);
                    printStar(1,ch);
                    printTab();
                }else{
                    printBlank((level+1)/2-i);
                    printStar(1,ch);
                    printBlank(((level+1)/2+i-1)-((level+1)/2-i)-2); //總元素為 層數+i-1,再減去打印的空格和*號數量.
                    printStar(1,ch);
                    printTab();
                }
            } for(i=(level+1)/2-1;i>=1;i--){
                if(i==1){
                    printBlank((level+1)/2-i);
                    printStar(1,ch);
                    printTab();
                }else{
                    printBlank((level+1)/2-i);
                    printStar(1,ch);
                    printBlank((level+1)/2+i-1-((level+1)/2-i)-2);
                    printStar(1,ch);
                    printTab();
                }
            }
        }else{
            for(i=1;i<=(level+1)/2;i++){
                if(i==1){
                    printBlank((level+1)/2-i+ch.length()/2);
                    printStar(1,ch);
                    printTab();
                }else{
                    printBlank((level+1)/2-i);
                    printStar(1,ch);
                    printBlank(((level+1)/2+i-1)-((level+1)/2-i)-2); //總元素為 層數+i-1,再減去打印的空格和*號數量.
                    printStar(1,ch);
                    printTab();
                }
            } for(i=(level+1)/2-1;i>=1;i--){
                if(i==1){
                    printBlank((level+1)/2-i+ch.length()/2);
                    printStar(1,ch);
                    printTab();
                }else{
                    printBlank((level+1)/2-i);
                    printStar(1,ch);
                    printBlank((level+1)/2+i-1-((level+1)/2-i)-2);
                    printStar(1,ch);
                    printTab();
                }
            }
        }
        }
    public static void runTest() { //判斷條件
        Scanner s = new Scanner(System.in);
        try{
            System.out.println("請輸入要打印的層數,只能輸入大于等于3的奇數 :" );
            int level = s.nextInt();
            String str = String.valueOf(level);
            if(str.matches("[1-9]\\d*")&&Integer.parseInt(str)%2!=0&&Integer.parseInt(str)!=1){
                System.out.println("請輸入要打印的形狀:" );
                String ch = s.next();
                try{
                    if(ch.matches("[^\u4e00-\u9fa5]+" )){
                        new test01().run(level, ch);
                    }else {
                        throw new Exception();}
                }catch (Exception e) {
                    System.out.println("輸入有誤!!!不能包含漢字字符,請重新輸入");
                    System.out.println("***********************************");
                    runTest(); //遞歸
                }
            }else if(str.matches("[-9-0]+")){ //
                throw new Exception();
            }
        }catch (Exception e) {
            System.out.println(" 輸入有誤!!!只能輸入大于等于3的奇數,請重新輸入");
            System.out.println("***********************************");
            runTest(); //遞歸
        }
    }
    }

以上就是java打印出菱形圖案實例詳解的詳細內容,更多關于java打印菱形圖案的資料請關注億速云其它相關文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁化县| 海伦市| 托克托县| 阳朔县| 南澳县| 黄山市| 平邑县| 永新县| 耿马| 昌乐县| 郸城县| 井陉县| 广安市| 黎城县| 汪清县| 河南省| 津市市| 高雄县| 城市| 准格尔旗| 农安县| 九台市| 翼城县| 浑源县| 阳高县| 额敏县| 昆明市| 宜宾县| 新郑市| 长白| 贵港市| 德州市| 西城区| 澄江县| 兰西县| 绥德县| 富裕县| 宜良县| 台南县| 双城市| 宜川县|