簡體   English   中英

如何使用兩種方法打印星號?

[英]how do I use two methods to print out asterisks?

我的程序要求輸入一個數字,將其轉換為二進制,添加零直到 8 個字符長,然后我需要它以星號打印出二進制是什么,空格應該是 5 跨和 5 長 IE:零會是五個星號的第一行; 一個星號,三個空格,一個星號表示第二行、第三行和第四行; 然后是第五行的另外五個星號。 一個 1 將是兩個空格和一個星號,用於所有五行。 我一輩子都想不出這個。我不允許在這個項目中使用 arrays。 這是家庭作業,我不是要求有人為我編寫代碼,只是一些關於我如何做到這一點的建議。 我沒主意了。 提前謝謝你下面是我的代碼:

    public static void getChara(String o){
      char e=0;
      int g=0;
      int h=0;
      for (g=0;g<5;g++){
          for (h=0;h<8;h++){
            e = o.charAt(h);  
             if ((g == 1) || (g == 5)){
            if(h == 0)
                printDigit(g,h);
            else if(h==1)
                printDigit(g,h);}
        else {
            if(h == 0)    
                printDigit(g,h);
            else if(h==1)
                printDigit(g,h);   }
         }
      }
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    printDigit(g,h); printDigit(g,h); printDigit(g,h); printDigit(g,h);
    System.out.println();

    }

    public static void printDigit(int g, int h){

        if ((g == 1) || (g == 5)){
            if(h == 0)
                System.out.print("***** ");
            else if(h==1)
                System.out.print("  *   ");}
        else {
            if(h == 0)    
                System.out.print("*   * ");
            else if(h==1)
                System.out.print("  *   ");   } 

    }

你有點想太多getChara了。 printDigit完成了打印星形圖案的所有工作,因此您無需在getChara中復制該邏輯。 所有getChara需要做的就是告訴printDigit到 output 正確數字的正確行以正確的順序,如下所示:

public static void getChara(String o){
    for (int row=0; row < 5; ++row){
        for (int i=0; i < o.length(); ++i){
            int digit = o.charAt(i) == '0' ? 0 : 1;
            printDigit(row, digit);
        }
        System.out.println();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM