2017-03-27 2 views
-1

Ich muss ein Programm machen, das ein Dreieck von Caret-Symbolen erzeugt, wenn der Benutzer eine ganze Zahl eingibt. Ich habe gelernt, wie man das Dreieck macht, aber ich weiß nicht, wie man es dazu bringt, der Datenvalidierung zu folgen.Erzeugen eines "Dreiecks von Caret-Symbolen" Mit Datenvalidierung in Java

Sample Output

public class program7 { 
public static void main(String[] args) { 
    int space=29; 
    char ch; 

    for (int i = 1; i <= 5; i++) { 
     ch = '^'; 

     //Print spaces in decreasing order. A is at 29th position. 
     for (int j = 1; j <= space; j++) { 
      System.out.print(" "); 
     } 

     //Print Triangle. 
     for (int k = 1; k <= i; k++) { 
      System.out.print(ch + " "); 
      ch+=1; 
     } 

     space--; 

     System.out.println(); 
    } 
} 
} 

Auch, wie kann ich es machen, so dass^in dem Gewirr und nichts anderes?

+1

"um die Datenvalidierung Folgen" ??????? – ajb

+0

Sie sollten wahrscheinlich zurücktreten und zuerst Ihre Anforderungen klären ... Dann nehmen Sie ein Stück Papier und "ran" Algorithmen manuell, um zu verstehen, was zur Lösung Ihres Problems erforderlich ist. – GhostCat

Antwort

0

Ich werde nicht vollständig Ihre Frage beantworten, aber in Bezug auf die Validierung von Eingabe es scheint, Sie sind nur mit Integer-Eingang behandeln daher erwartet, könnten Sie unten, um ein Scanner wie verwenden:

Hinweis: Ich habe links aus der Der Code für printRightTriangleLHS als Übung für Sie. Es ist die einfachste :)

import java.util.Scanner; 

class program7 { 
    public static void main(String[] args) { 
    Scanner scanner = new Scanner(System.in); 
    int number = 0; 

    while((number < 3) || (number > 10)) { 
     System.out.print("Please enter a number between 3 and 10: "); 
     number = scanner.nextInt(); 
    } 

    printSpacing(1); 
    printRightTriangleLHS(number); 
    printRightTriangleRHS(number); 
    printEquliateralTriangle(number); 
    System.out.println("Process Completed!"); 
    } 

    public static void printRightTriangleLHS(int height) { 
    System.out.println("Right Triangle with angle on LHS"); 
    printSpacing(2); 
    } 

    public static void printRightTriangleRHS(int height) { 
    System.out.println("Right Triangle with angle on RHS"); 
    for (int i = 0; i < height; i++) { 
     for (int j = 0; j < i; j++) 
     System.out.print(" "); 
     for (int j = i; j < height; j++) 
     System.out.print("^"); 
     System.out.println(); 
    } 
    printSpacing(2); 
    } 

    public static void printEquliateralTriangle(int height) { 
    System.out.println("Equliateral Triangle"); 
    for(int i = 0; i < height; i++) { 
     for(int j = 0; j < height - i; j++) { 
     System.out.print(" "); 
     } 
     for(int k = 0; k <= i; k++) { 
     System.out.print("^ "); 
     } 
     System.out.println(); 
    } 
    printSpacing(2); 
    } 

    public static void printSpacing(int lineBreaks) { 
    for(int i = 1; i <= lineBreaks; i++) { 
     System.out.println(); 
    } 
    } 
} 

Probieren Sie es here!

Aktuelle Verwendungsbeispiel:

Please enter a number between 3 and 10: 55 
Please enter a number between 3 and 10: -11 
Please enter a number between 3 and 10: 0 
Please enter a number between 3 and 10: 5 

Right Triangle with angle on LHS 


Right Triangle with angle on RHS 
^^^^^ 
^^^^ 
    ^^^ 
    ^^ 
    ^


Equliateral Triangle 
    ^
    ^^ 
^^^
^^^^ 
^^^^^ 


Process Completed!