2016-10-07 14 views
-5

私はそれで非常に良いコーディングせずに非常に新しいです:(java forを使用してコンソールでジグザグ出力を取得するには?

私は今、数時間のために私のクラスのためのプロジェクトを行うのに苦労してきたと私はほとんど使用してインターネットを精練してきた。

ボールが前後にバウンスしているかのように私のコンソールに表示させる必要があります。ボールのバウンスの幅はユーザーが設定します。

これまでのところ、私の出力は、ユーザが選択した幅。

私の今までのコード:

import java.util.Scanner; 

public class Midterm1_1 { 
    public static void main(String[] args) { 
     Scanner scan = new Scanner (System.in); 
     double yourNum; 
     System.out.println("How many spaces wide would you like the ball to bounce?"); 
     yourNum= scan.nextDouble(); 
     String ballBounce = new String ("o") 
     int count = 0; 
     while (count < 50){ 
      System.out.println(ballBounce); 
      String x = " "; 
      for (int row = 1; row < yourNum; row++) { 
       System.out.println(x+"o"); 
       x+= " "; 
      } 
     } 
    } 
} 

右から左に戻すにはどうすればよいですか?私の前提はもう一つの声明です。しかし、これまで私が試したことはすべて動作しません。

ありがとうございます。

答えて

0

以下のコードは、必ずしも最短のものではありませんが、OPをいくつかのアイデアを得ることを目的としていますが、ストレートな回答を提示することはありません。 OPがそのままコードをコピーしてそれを適応させない場合、コードがどこかからコピーされていることは教師には明らかです。 OPがそれを理解している場合は、その解決策を簡単かつ簡潔にすることができます。

あなたは、以下の2つの方法があり、お好きなところをお選びくださいあなたは、コードを読んで、それをを理解した後にのみ(私は意図的に排除し、別のものがある:これは学習の行使で、それほど明白1は次のように残っています運動)。第一の方法(paintBallAt_1)、第二の方法についてPrintStream.printf

paintBallAt_2)読み取り行くため

、読み取り行くString.substring

public class Midterm1_1 { 
    static private String ballBounce = "o"; 


    public static void paintBallAt_1(int x) { 
     if(x==0) { 
      System.out.println("o"); 
     } 
     else { 
      // will get your format strings as "%1$1c\n", "%1$2c\n", etc 
      String formatString="%1$"+x+"c\n"; 
      System.out.printf(formatString, 'o'); 
     } 
    } 

    // 6x20=120 spaces at max. Limit or expand them how you see fit 
    static public final String filler= 
     "     "+ 
     "     "+ 
     "     "+ 
     "     "+ 
     "     "+ 
     "     " 
    ; 
    static public final int MAX_BOUNCE=filler.length(); 

    public static void paintBallAt_2(int x) { 
     if(x>MAX_BOUNCE) { 
     x=MAX_BOUNCE; 
     } 
     if(x<0) { 
      x=0; 
     } 
     String bounceSpace=filler.substring(0, x); 
     System.out.println(bounceSpace+"o"); 
    } 

    public static void main(String[] args) { 
     Scanner scan = new Scanner (System.in); 
     int yourNum; 
     System.out.println("How many spaces wide would you like the ball to bounce?"); 
     yourNum= scan.nextInt(); 
     int count = 0; 
     while (count < 50) { 
      System.out.println(ballBounce); 
      String x = " "; 
      for (int row = 1; row < yourNum; row++) { 
       System.out.println(x+"o"); 
       x+= " "; 
      } 

      // bounce it to the left 
      for (int row = yourNum-1; row >= 0; row--) { 
       switch(row % 2) { 
        case 0: 
         paintBallAt_1(row); 
         break; 
        default: 
         paintBallAt_2(row); 
         break; 
       } 
      } 
     } 
    } 
} 
関連する問題