2014-02-23 71 views
0

,它會要求從用戶四條信息:如何在程序啓動構建Windows

  1. 多少層高的大樓將是
  2. 每個故事有多少窗戶
  3. 有多寬,每個窗口會是
  4. 有多高,每個窗口會是

該方案將設置在每個這些限制。限制應該是問題的一部分,如how wide do you want the windows? (1-5).如果用戶超出限制(無論是高於還是低於限制),則應該輸出消息並且應該再次查詢用戶。這應該發生儘可能多的次數以在限制內獲得數字。 (正如你可以看到下面的代碼,我完成了這部分)

(我有這個部分的麻煩)我的窗口的數量和大小應該控制與循環。但是我不允許使用大量的「if」語句。每個問題的上限應作爲常數列入。例如,final int MAXSTORIESHIGH=12;如果更改了常量,我的程序應該能夠處理新的限制,而無需進行任何其他更改。我應該用什麼循環來控制窗口的數量和大小?

import java.util.Scanner; 
public class BuildingAssign { 

    public static void main (String [] args){ 

     int input; 

     Scanner in = new Scanner(System.in); 

     do { 
      System.out.print("How many stories high the building will be? (1-5): "); 
      input = in.nextInt(); 
     }while (input < 1 || input > 5); 

     do { 
      System.out.print("How many windows on each story? (1-10): "); 
      input = in.nextInt(); 
     }while (input < 1 || input > 10); 

     do { 
      System.out.print("How wide each window will be? (3-5): "); 
      input = in.nextInt(); 
     }while (input < 3 || input > 5); 

     do { 
      System.out.print("How tall each window will be? (4-6): "); 
      input = in.nextInt(); 
     }while (input < 4 || input > 6); 

    } 
} 

回答

0

好吧,好像你已經知道如何做到這一點。基本上,你會爲其他人做同樣的事情,但不是在參數中進行硬編碼,而是將變量放入。例如,

final int MAXSTORIESHIGH= 12; 
final int MINSTORIESHIGH = 1; 
do { 
     System.out.print("How many stories high the building will be? (1-5): "); 
     input = in.nextInt(); 
    }while (input < MINSTORIESHIGH || input > MAXSTORIESHIGH); 

如果您想更改最大值和最小值,您只需更改變量的值。

+0

謝謝,還有一個問題。我應該在哪裏使用print和println語句在我的控制檯窗口上繪製建築物。假設建築物的高度爲2,那麼它應該顯示兩層建築。如果你不知道我在說什麼,請點擊我提供的鏈接... http://i.imgur.com/C95mBfM.png感謝高級! – edwardpark

+0

哈哈,這比你原來的問題複雜得多。我會跳過這樣做,因爲到控制檯的繪圖比你想象的要煩人得多,他們看起來不太好,並且沒有任何方法導出到應用程序。我只是學習了一個圖形界面的實際繪圖,這是幸運的Java非常擅長。 Java2D API非常好,是我個人的最愛之一。 :) – Kyranstar

+0

如果你仍然想去,我可以給你一些提示。 我的方法是循環遍歷建築物的每一行,然後看看要畫什麼。如果它是一個屋頂或地面你畫 ''******** 如果它是一個窗口的邊緣,你會得出 '* *** *''地方'***重複對於每個窗口,三個假設寬度是三。 如果它是一個窗口中心,你會畫 '* * * *'其中中間的空格是寬度。 – Kyranstar

相關問題