2016-11-02 2 views
-2

私はコードをどのように適用するのか混乱していました。JavaでWhileループを使用して一連の出力を得るには?

input: 5 

whileループを使用してこのようなシーケンス出力を行う予定でした。

input: 
5 
output: 
***** 
**** 
*** 
** 
* 

このコードを適用しました。

int input ; 
    String output = "*"; 

    Scanner sc = new Scanner(System.in); 
    System.out.println ("input:"); 
    input = sc.nextInt(); 
    System.out.println ("output: "); 
    while (input!=0){ 
     System.out.print (output); 
     input--; 

    } 

出力は次のとおりです。

input: 
3 
output: 
*** 
+1

最初のいくつかの研究を行います。これは、1つのループを使用して行うことはできません。代わりにネストループを使用 –

+0

実現してください – Jigar7521

答えて

0

forループを使用してこのコードを試すことができます.1つのループを使用してこれを行うことはできません。 inputが持っていることを、それぞれ異なる値に対して

public class TmpTest { 
    public static void main(String args[]) { 
     int input; 
     Scanner sc = new Scanner(System.in); 
     input = sc.nextInt(); 
     for(int i=0;i<input;i++){ 
      for(int j = i; j<input;j++){ 
       System.out.print("*"); 
      } 
      System.out.println(""); 
     } 
    } 
} 
0

、あなたはinputの現在の値に対応し、複数のoutputトークンを印刷する別のループを必要としています。

inputが新しい値を取得するたびに新しい改行を追加する必要があります(新しいforループを実行しようとすると)。

while (input!=0){ 

     for(int i = 1;i <= input;i++) 
     { 
      System.out.print(output); 
     } 

     input--; 
     System.out.println(); 
    } 
0

以下のコードを使用すると、効果があります。

public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     System.out.println ("input:"); 
     int input = sc.nextInt(); 
     int outerLoopIndex = input; 
     System.out.println ("output: "); 
     while (outerLoopIndex > 0) { 
     int innerLoopIndex = 1; 
      while (innerLoopIndex < (outerLoopIndex + 1)) { 
       System.out.print("*"); 
       innerLoopIndex++; 
      } 
      outerLoopIndex--; 
      System.out.println(" "); 
     } 

    } 
0
Scanner sc = new Scanner(System.in); 
    System.out.println("input:"); 
    int n = sc.nextInt(); 
    int i = n; 
    int j = 0; 
    while (i != 0) { 

     while (j != i) { 
      System.out.print("*"); 
      j++; 
     } 
     j = 0; 
     System.out.println("\n"); 
     i--; 
    } 
0
public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    System.out.println("input:"); 
    int n = sc.nextInt(); 
    int j = 0; 
    recursive(n, j); 
} 

public static void recursive(int i, int j) { 
    while (i != 0 && j != i) { 
     System.out.print("*"); 
     j++; 

    } 
    j = 0; 
    System.out.println("\n"); 
    if(i!=0) 
    recursive(--i, j); 

} 
+0

これを単一ループで試してください。再帰関数呼び出しロジックを使用してください – user3752888

関連する問題