java - 如何将方法中用户输入的所有输出相加?

标签 java methods console local-variables

我正在为 CS 类(class)开发这个程序,希望用户输入每个硬币的金额,向他们显示所述硬币数量的货币值(value),然后将每个输出的货币相加。

到目前为止,我所拥有的允许某人输入每种硬币的金额并显示多少硬币,但我似乎不知道如何在最后将所有货币值(value)相加。我需要一个单独的方法来调用从每个方法返回的所有资金的金额。任何帮助,将不胜感激!这是我到目前为止所拥有的:

import java.util.*;

public class Coins {
  public static final Scanner CONSOLE = new Scanner(System.in);

  public static void main(String[] args) {
    quarterDollarAmount( );
    dimeDollarAmount( );
    nickelDollarAmount( );
    pennyDollarAmount( );
  }

  public static void quarterDollarAmount( ) {
    System.out.print("Enter the number of quarters: ");
    int quarterAmount = CONSOLE.nextInt( );
    double amount = quarterAmount * 0.25;
    System.out.println(quarterAmount + " quarter are $" + amount);
  }

  public static void dimeDollarAmount( ) {
    System.out.print("Enter the number of dimes: ");
    int dimeAmount = CONSOLE.nextInt( );
    double amount = dimeAmount * 0.1;
    System.out.println(dimeAmount + " dimes are $" + amount);
  }

  public static void nickelDollarAmount( ) {
    System.out.print("Enter the number of nickels: ");
    int nickelAmount = CONSOLE.nextInt( );
    double amount = nickelAmount * 0.05;
    System.out.println(nickelAmount + " nickels are $" + amount);
  }

  public static void pennyDollarAmount( ) {
    System.out.print("Enter the number of pennies: ");
    int pennyAmount = CONSOLE.nextInt( );
    double amount = pennyAmount * 0.01;
    System.out.println(pennyAmount + " pennies are $" + amount);
  }
}

好的,所以我将所有方法更改为与各自的硬币类型类似:

 public static double pennyDollarAmount( ) {
    System.out.print("Enter the number of pennies: ");
    int pennyAmount = CONSOLE.nextInt( );
    double amount = pennyAmount * 0.01;
    System.out.println(pennyAmount + " pennies are $" + amount);
    return amount;
  }

并添加了方法:

public static double totalDollarAmount( ) {
    double quarters = quarterDollarAmount();
    double dimes = dimeDollarAmount();
    double nickels = nickelDollarAmount();
    double pennies = pennyDollarAmount();
    int total = quarters + dimes + nickels + pennies;
    System.out.println("Total amount is $" + total);
  }
}

但是现在,编译器输出显示(由于显而易见的原因,我已经删除了我的系统详细信息):

1 error found:
File: /Users//Documents/Semester 2/CS/Coins.java  [line: 51]
Error: /Users//Documents/Semester 2/CS/Coins.java:51: possible loss of precision
found   : double
required: int

并将光标置于 + in + pennys; 之前。知道这意味着什么吗?

最佳答案

您需要return amount; 并将所有与金钱相关的函数的返回类型从void 更改为double

public static double quarterDollarAmount( ) {
    System.out.print("Enter the number of quarters: ");
    int quarterAmount = CONSOLE.nextInt( );
    double amount = quarterAmount * 0.25;
    System.out.println(quarterAmount + " quarter are $" + amount);
    return amount;
}

然后在调用函数时捕获变量中的返回值。

double quarters = quarterDollarAmount();
...
double pennies = pennyDollarAmount();

然后您可以将存储在这些变量中的值相加,并对结果执行您想要的操作。

double total = quarters + ... + pennies;

关于java - 如何将方法中用户输入的所有输出相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21562306/

相关文章:

java - 属性文件中属性的命名约定

java - assertEquals() 失败的原因

java - 在 Java 中,此文件位置中的句点表示什么?

c# - 使用 .NET 4.5 编写的 Windows 服务中的 Console.Out 和 Console.Error 竞争条件错误

java - Unicode 和控制台解释

java - 在多线程程序中使用迭代器时出现并发修改异常

c++ - 使用指针从 for_each 循环访问成员方法

Scala公共(public)方法: ';' expected but 'def' found

c# - methods() 应该放在哪里?

javascript - fs.readFile 函数响应未定义...有什么想法吗?