2016-06-10 6 views
1

, поэтому я должен делать программу, которая создает коробку из звездочек, и пока она не отображается правильно, иногда столбцы слишком маленькие, иногда слишком большие, но никогда там, где они должны быть. кто-то может помочь!Моя программа звездочки не работает должным образом

import java.util.Scanner; 

public class DisplayBox { 

    public static void drawBar(int length){ 
     for (int i = 1; i <= length; i++){ 
      System.out.print("*"); 
     } 

    } 
    public static void drawHeight(int height, int length){ 
     int h = 0; 
     while (h++ < length - 2){ 
      System.out.print("*"); 
      int h1 = 0; 
      while (h1++ < length - 2){ 
       System.out.print(" "); 
      } 
      System.out.println(" *"); 

     } 
    } 

    public static void main(String[] args){ 
     Scanner input = new Scanner(System.in); 
     System.out.print("Please enter the length of the Box: "); 
     int length = input.nextInt(); 
     System.out.println("Please enter the height!: "); 
     int height = input.nextInt(); 
     System.out.println(); 
     drawBar(length); 
     drawHeight(height, length); 
     drawBar(length); 
    } 
} 

ответ

0
  • вы не имеете в drawBar в println, чтобы закончить линию
  • вы сравнить h к length, а не height в drawHeight

просто стиль комментария: это может быть яснее если ваш метод создает строку заданной длины, а затем все методы печати находятся в одном месте:

private String repeat(char ch, int len) { 
    char chars = new char[len]; 
    Arrays.fill(chars, ch); 
    return new String(chars); 
} 

println(repeat('*', length)); 
for (int l = 0; l < length - 2; l++) 
    println("*" + repeat(' ', length - 2) + "*"); 
println(repeat('*', length)); 
0
import java.util.Scanner; 

public class DisplayBox { 

    public static void drawBar(int length){ 
     for (int i = 1; i <= length; i++){ 
      System.out.print("* "); 
     } 
     System.out.print("\n"); 
    } 
    public static void drawHeight(int height, int length){ 
     int h = 0; 
     while (h++ < length - 1){ 
      System.out.print("*"); 
      int h1 = 0; 
      while (h1++ < length-1){ 
       System.out.print(" "); 
      } 
      System.out.println("*"); 

     } 
    } 

    public static void main(String[] args){ 
     Scanner input = new Scanner(System.in); 
     System.out.print("Please enter the length of the Box: "); 
     int length = input.nextInt(); 
     System.out.println("Please enter the height!: "); 
     int height = input.nextInt(); 
     System.out.println(); 
     drawBar(length); 
     drawHeight(height, length); 
     drawBar(length); 
    } 
} 

Это кажется нормально .. хотя

Смежные вопросы