如何基于是或否添加费用?

时间:2018-11-16 00:21:38

标签: java if-statement methods

在进行编码分配时,我们必须合并方法并将其返回。但是,这是重点。我正在努力计算价格部分。好的,这就是我坚持的要点。程序询问时,是您的车和进口车。如果答案是肯定的,则将向您收取7%的进口税,否则,将不收取费用。现在,该程序要求提供四项服务,根据是或否,将根据其答案来收取费用。

因此,如果用户想要换油和调优,并且如果他们的汽车是进口车,则服务价格将与进口税一起加在一起;如果汽车不是进口车,但想要所有服务,则将收取费用显示时未添加进口税等。最终结果将显示为“税前为$#,税后总计为...”如果需要if语句,但我不知道从哪里开始,因为我主要是为是或否而苦苦挣扎...有什么帮助吗?我的教授建议我使用一个蓄电池,所以我加了一个。。无济于事,我迷路了,任何帮助将不胜感激。

netlify.toml

2 个答案:

答案 0 :(得分:1)

如果您希望将费用添加到答案的值中,则应该仅在一个for循环中执行此操作,并且因为服务和价格的索引只是使用if语句来检查是否为是

String[] services = {"Oil Change", "Coolant Flush", "Brake Job", "Tune Up"};                      
      for(int i=0; i<services.length; i++)
         {
           System.out.println("Do you want a " +services[i]);
           answer = keyboard.next();   
           if(answer.equalsIgnoresCase()){
                   answer += prices[i]
             }  
          }  

     double amount = 0;
     double[] price = {39.99, 59.99, 119.99, 109.99};  
     for(int i =0; i<price.length; i++)
           {
              amount = (price[i] + price [i]);
           }

答案 1 :(得分:1)

在谈论您的代码之前,建议您阅读本文。

这有点轻率,但是有一个很深的道理。并巧妙地映射了我40年前教给我的调试技术。


首先,我请您注意:

  System.out.println("Is your car an import?");
  while (true)
  {
     answer = keyboard.nextLine();
     if (answer.equalsIgnoreCase("yes")) 
   {
     yn = true;
     break;
   } 
        else if (answer.equalsIgnoreCase("no"))
        {
           yn = false;
           break;
         } 
           else 
           {
           System.out.println("Sorry, I didn't catch that. Please answer yes or no");
           }

   } 

该代码在询问“是或否”问题并获得答案方面做得很好。它包含用于重试代码的内容,如果用户使用无法识别为“是”或“否”的内容进行响应,则该代码会重试。

所以我猜想有人在为您编写了该代码...或者您在某个地方找到了它。您需要仔细阅读该代码,并确保您完全了解其工作原理。


接下来,我提请您注意:

  for(int i=0; i<services.length; i++)
     {
       System.out.println("Do you want a " +services[i]);
       answer = keyboard.next();    
      }  

此代码没有意义。 (向您的橡皮鸭解释一下!)

您先前的代码是一个很好的例子,说明如何询问是/否问题。但这不是这样的:

  • 您不是要测试“是”或“否”。
  • 如果用户给出无法识别的答案,您就不会重复
  • 您甚至没有为每种不同的服务存储答案...。

然后这个:

 double amount = 0;
 double[] price = {39.99, 59.99, 119.99, 109.99};  
 for(int i =0; i<price.length; i++)
       {
          amount = (price[i] + price [i]);
       }

这似乎是试图将服务项目的价格加到总额中。但是:

  • 您正在为每项服务项目而不只是客户要求的项目。
  • 您实际上还是在错误地进行计算。 (和您的橡皮鸭谈一谈!)

该如何解决?

  • 从我上面说的来看,有些事情应该是显而易见的。
  • 从第一个for循环中记住答案并在第二个for循环中使用答案的问题……实际上是您可以/应该避免的问题。而是将两个循环合并为一个。这是一些伪代码:

        for each service:
            ask the user if he wants this service
            if the user wants this service:
                add the service cost to the total.
    

    理解其的逻辑,并将其转换为Java代码。 (是的,我可以为您写这本书,但这违背了目的!)