2016-02-07 62 views
-1

场景如下,如何在Java中设置参数?

装饰者需要输入房间的高度(2米到6米之间),然后输入所有四面墙的长度(最小1米;最大25米)。

System.out.println("Enter Height of the room"); 
    Scanner hr = new Scanner(System.in); 
    int height = hr.nextInt(); 

System.out.println("Enter Length1 of the room"); 
    Scanner l1 = new Scanner(System.in); 
     int length = l1.nextInt(); 

System.out.println("Enter Length2 of the room"); 
      Scanner l2 = new Scanner(System.in); 
      int length2 = l2.nextInt(); 

System.out.println("Enter Length3 of the room"); 
      Scanner l3 = new Scanner(System.in); 
      int length3 = l3.nextInt(); 

System.out.println("Enter Length4 of the room"); 
      Scanner l4 = new Scanner(System.in); 
       int length4 = l4.nextInt(); 

我已经写了扫描仪来接收用户的输入,但我不知道如何设置扫描仪的参数。我想让程序执行的操作是接收用户的输入,如果(例如房间高度为9米)输入不在打印错误的参数内。

+1

是否真的需要创建这些很多'Scanner's的。 – Satya

+0

你不应该多次包装一个流。这导致不可预知的结果。 –

+0

使用'if'条件来检查用户输入。 –

回答

1

如果我理解它是正确的,你必须创建你所谓的参数。 Scanner不会做你想做的。

所以,再次,如果我理解它是正确的,你应该创建条件来检查用户是否给你正确的输入。

而且你也只需要ONEScanner实例。所以:

Scanner scannerToUsAll = new Scanner(System.in); 

System.out.println("Enter Height of the room"); 
int height = scannerToUsAll.nextInt(); 

//here you check 
if (height < 2 && height > 6 ){ 
    System.out.println("The Height is not within the parameters (2 and 6)"); 
} 

如果你需要得到另一个输入只需使用相同的扫描仪int length = scannerToUsAll.nextInt();

你需要控制你的应用程序退出或返回到相同问题的流程。在这里,我建议:while

0
System.out.println("Enter Height of the room"); 
    Scanner sc = new Scanner(System.in); 
    int height = sc.nextInt(); 
    if (height < 2 || height > 6) 
    { 
     System.out.println("Error: height is invalid"); 
    } 

System.out.println("Enter Length1 of the room"); 
     int length1 = sc.nextInt(); 
     if (length1 < 1 || length1 > 25) 
     { 
      System.out.println("Error: length1 is invalid"); 
     } 

System.out.println("Enter Length2 of the room"); 
      int length2 = sc.nextInt(); 
      if (length2 < 1 || length2 > 25) 
      { 
       System.out.println("Error: length2 is invalid"); 
      } 

...等等...

+0

好的,欢呼声...我会编辑我的帖子以删除它。 @PeterLawrey – Carlene

相关问题