2016-11-16 3 views
-5

Ich habe einige Probleme mit meiner Methode. Es scheint nicht den Türbereich zu berechnen, da es immer einen Wert von 0.0 zurückgibt. Es sollte basierend auf der Länge und Höhe berechnet werden, die eingegeben wurde. DankWarum berechnet die Methode den Türraum nicht?

package Hw; 

import java.util.Scanner; 

public class HouseReno3 { 

      public static void main(String[] args) { 

      // Initialize and Declare Variables 
      double ceramictile = 4.00; 
      double hardwood = 3.00; 
      double carpet = 2.00; 
      double linoleumtile = 1.00; 

      // Initialize Variables 
      int floortype; 
      int budget; 
      double length; 
      double height; 
      double width; 
      double ld = 0; 
      double hd = 0; 
      double lw1; 
      double hw1; 
      double lw2; 
      double hw2; 
      double lb; 
      double hb; 
      double wb; 
      double door = 0; 
      double window = 0; 
      double bookshelf = 0; 
      double doorspace = 0; 

      doorspace = itemd (door, ld, hd, doorspace); 
     // double costp; 
     // double costf; 

      // Initialize Scanner 
      Scanner keyboard = new Scanner (System.in); 

      System.out.println("Enter Number Of Doors"); 
      door = keyboard.nextDouble(); 
      for(int doors = 0; doors < door; doors++) 
      { 

       System.out.println("What is the length of the door (in feet)? "); 
       ld = keyboard.nextDouble(); 
       System.out.println("What is the height of the door (in feet)? "); 
       hd = keyboard.nextDouble(); 
       System.out.println("Doorspace is: " + doorspace); 

      } 



      System.out.println("Enter Number Of Windows"); 
      window = keyboard.nextDouble(); 
      for(int windows = 0; windows < window; windows++) 
      { 
       System.out.println("What is the length of the window (in feet)? "); 
       lw1 = keyboard.nextDouble(); 
       System.out.println("What is the height of the window (in feet)? "); 
       hw1 = keyboard.nextDouble(); 
      } 

      System.out.println("Enter Number Of Bookshelves"); 
      bookshelf = keyboard.nextDouble(); 
      for(int bookshelves = 0; bookshelves < bookshelf; bookshelves++) 
      { 
       System.out.println("What is the length of the bookcase (in feet)? "); 
       lb = keyboard.nextDouble(); 
       System.out.println("What is the height of the bookcase (in feet)? "); 
       hb = keyboard.nextDouble(); 
       System.out.println("What is the width of the bookcase (in feet)? "); 
       wb = keyboard.nextDouble(); 

      } 

    } 

      private static int itemd(double door, double ld, double hd, double doorspace) { 

       doorspace = ld *hd; 
       return (int) doorspace; 
      }     
} 
+0

sich ändern, sobald Sie alle Türbezogenen Eingangswerte verarbeitet? – Berger

+0

Ich habe es versucht, aber die Ausgabe ist immer noch 0.0 –

+0

Versuchen Sie 'System.out.println (" Doorspace ist: "+ itemed (Tür, ld, hd, Tür));' statt 'System.out.println ("Türraum ist:" + Türrahmen); '. – Berger

Antwort

0

Im ursprünglichen Code die Berechnung der Tür Raum vor dem Lesen der Eingabewerte durchgeführt.

doorspace = itemd (door, ld, hd, doorspace); 
[...] 

// Initialize Scanner 
Scanner keyboard = new Scanner (System.in); 

System.out.println("Enter Number Of Doors"); 

So ld und hd, die itemd weitergegeben werden, sind 0. Sie müssen die Berechnung bewegen. Wie in den Kommentaren erwähnt würde es ausreichen, die Linie Vielleicht sollten Sie itemd` nennen `nur

System.out.println("Doorspace is: " + doorspace); 

zu

System.out.println("Doorspace is: " + itemd (door, ld, hd, doorspace)); 
+0

Ich bekomme immer noch die gleiche Antwort. –

Verwandte Themen