Java 如何构建Windows

Java 如何构建Windows,java,Java,当程序启动时,它将向用户询问四条信息: 这座大楼将有多少层楼高 每个楼层有多少个窗口 每扇窗户有多宽 每扇窗户有多高 程序将对每一项设置限制。限制应该是问题的一部分,比如您希望窗口有多宽?(1-5)。如果用户超出了上限或下限,则应输出一条消息并再次查询用户。这种情况应尽可能多地发生,以使数值在限制范围内。(正如您可以看到下面的代码,我已完成此部分) (我对这部分有问题)我的窗户的数量和大小应该用循环控制。但是,我不允许使用大量的“如果”语句。每个问题的上限应作为常数包含在内。例如,final i

当程序启动时,它将向用户询问四条信息:

  • 这座大楼将有多少层楼高
  • 每个楼层有多少个窗口
  • 每扇窗户有多宽
  • 每扇窗户有多高
  • 程序将对每一项设置限制。限制应该是问题的一部分,比如
    您希望窗口有多宽?(1-5)。
    如果用户超出了上限或下限,则应输出一条消息并再次查询用户。这种情况应尽可能多地发生,以使数值在限制范围内。(正如您可以看到下面的代码,我已完成此部分)

    (我对这部分有问题)我的窗户的数量和大小应该用循环控制。但是,我不允许使用大量的“如果”语句。每个问题的上限应作为常数包含在内。例如,final int
    maxstorieshhigh=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);
    
        }
    }
    
    import java.util.Scanner;
    公共类构建分配{
    公共静态void main(字符串[]args){
    int输入;
    扫描仪输入=新扫描仪(系统输入);
    做{
    系统输出打印(“建筑物将有多少层楼高?(1-5):”;
    input=in.nextInt();
    }而(输入<1 | |输入>5);
    做{
    System.out.print(“每个故事有多少个窗口?(1-10):”;
    input=in.nextInt();
    }而(输入<1 | |输入>10);
    做{
    系统输出打印(“每个窗口有多宽?(3-5):”;
    input=in.nextInt();
    }而(输入<3 | |输入>5);
    做{
    系统输出打印(“每个窗口有多高?(4-6):”;
    input=in.nextInt();
    }而(输入<4 | |输入>6);
    }
    }
    
    看来你已经知道怎么做了。基本上,你会做同样的事情,你已经做了其他人,但不是硬编码的参数,你会把变量代替。比如说,

    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);
    
    final int maxstorieshhigh=12;
    最终整数分钟数高=1;
    做{
    系统输出打印(“建筑物将有多少层楼高?(1-5):”;
    input=in.nextInt();
    }而(输入<分钟数高| |输入>最大存储高);
    

    如果要更改最大值和最小值,只需更改变量的值。

    谢谢,还有一个问题。我应该在哪里使用print和println语句在控制台窗口上绘制建筑。假设建筑物的高度是2,那么它应该是两层楼。如果你不知道我在说什么,请点击我提供的链接。。。提前感谢!哈哈,这比你原来的问题复杂多了。我会跳过这一步,因为控制台上的绘图比你想象的要烦人得多,它们看起来不太好,也没有任何方法导出到应用程序。我将学习实际绘图的图形界面,幸运的是java非常擅长。Java2D API非常好,是我个人最喜欢的API之一。:)如果你还想去,我可以给你一些建议。我的方法是在建筑的每一行中循环,看看要画什么。如果它是屋顶或地板,您将绘制
    *********
    ,如果它是窗边,您将绘制
    ***
    ,其中每个窗重复绘制
    ***
    ,假设宽度为3。如果它是一个窗口中心,你会画出“代码> ****/CODE”,其中中间的空间是宽度。因为它看起来不像很多其他人会像我已经回答的那样回答这个问题,而且你也会继续问一个后续问题,我问你接受我的答案吗?