试图在我的程序中显示单个树的成本

时间:2015-11-01 03:41:17

标签: java

你告诉我什么错了吗?基本上我试图显示存储在变量“oneTree”中的用户输入并在屏幕上发布,这样当我写它时,它会显示一棵树的价格。

import java.util.Scanner;
import java.text.DecimalFormat;

public class greenfields
{
  public static void main(String[] args)
 {

  Scanner keyboard = new Scanner(System.in);

 String choice;
 int forDelivery;
 int numTrees;
 int treeHeight;
 double oneTree;
 double treeCost;
 double deliveryCost;
 double totalCharges;
 double totalTreeCost;



 System.out.println("How many trees do you want to purchase?");
 numTrees = keyboard.nextInt();
 System.out.println("Enter the height of the trees you want to purchase.");
 treeHeight= keyboard.nextInt();


 System.out.println("Would you like the trees be delivered?  Enter 1 for Yes, Enter 0 for No.");
  forDelivery= keyboard.nextInt();
  if(forDelivery==1)



    if(numTrees <5 )
   deliveryCost = 10.00 * numTrees;

   else if (numTrees >=5)
   forDelivery=50;

if(treeHeight <= 5);
    treeCost =numTrees * 69.50;
if (treeHeight <= 8);
    treeCost =numTrees * 99.00;
if (treeHeight >=9);
    treeCost= numTrees * 199.50;
 if(treeHeight <3)
 treeCost= numTrees * 39.00;

  if(treeHeight < 3)
    oneTree = 39.00;
  if(treeHeight == 3 || treeHeight == 4 ||treeHeight== 5)
    oneTree=  69.50;
  if (treeHeight == 6  || treeHeight== 7 || treeHeight == 8)
   oneTree = 99.00;
  if ( treeHeight > 8)
   oneTree =199.50;

   totalTreeCost = numTrees * treeCost;

   System.out.println(numTrees + " Trees at "+ " each:" +treeCost+ "\n" + totalTreeCost);

    }
    }

1 个答案:

答案 0 :(得分:2)

首先,删除if条件后的; ,if条件当前无效

 if (treeHeight <= 5) ;
    treeCost = numTrees * 69.50;
    if (treeHeight <= 8) ;
    treeCost = numTrees * 99.00;
    if (treeHeight >= 9) ;
    treeCost = numTrees * 199.50;
    if (treeHeight < 3)
        treeCost = numTrees * 39.00;

其次,你应该使用 else if ,因为如果treeHeight&lt; = 5也是treeHeight&lt; = 8,则没有其他if,你将两个条件都应用于treeCost

所以正确的代码应该是:

 if (treeHeight <= 5)
        treeCost = numTrees * 69.50;
    else if (treeHeight <= 8)
        treeCost = numTrees * 99.00;
    else if (treeHeight >= 9)
        treeCost = numTrees * 199.50;
    else if (treeHeight < 3)
        treeCost = numTrees * 39.00;