Java I';我很难把这两种方法联系起来

Java I';我很难把这两种方法联系起来,java,Java,我正在创建一个银行账户程序,我正在这样做,以便余额始终以美元为单位,但问题是我不知道如何将这些方法组合在一起。这是我的一点代码。我想问的是,converter方法如何获得switch语句中使用的值?我尝试了多种不同的方法,但总是存在范围问题或重复变量 public static double convertCurrency(double amount, int currencyType, boolean isConvertToUSD){ // checks what type of c

我正在创建一个银行账户程序,我正在这样做,以便余额始终以美元为单位,但问题是我不知道如何将这些方法组合在一起。这是我的一点代码。我想问的是,converter方法如何获得switch语句中使用的值?我尝试了多种不同的方法,但总是存在范围问题或重复变量

public static double convertCurrency(double amount, int currencyType, boolean isConvertToUSD){
    //  checks what type of currency was chosen and converts each it into US dollars

    }
}

public static int currencyMenuOptionSelector(Scanner console){
    while(true){
        System.out.println("Please select the currency type:");
        System.out.println("1. U.S. Dollars");
        System.out.println("2. Euros");
        System.out.println("3. British Pounds");
        System.out.println("4. Indian Rupees");
        System.out.println("5. Australian Dollars");
        System.out.println("6. Canadian Dollars");
        System.out.println("7. Singapore Dollars");
        System.out.println("8. Swiss Francs");
        System.out.println("9. Malaysian Ringgits");
        System.out.println("10. Japanese Yen");
        System.out.println("11. Chinese Yuan Renminbi");
        int currencyType = console.nextInt();

        switch (currencyType){
        // cases 1-11 simply establishes each currency as a variable (not all cases are listed to avoid redundancy)
        case 1: {
            double USA = 1.00;
        }
        case 2: {
            double Euro = 0.89;

default: {
            System.out.println("Input failed validation. Please try again.");
            continue;
         }
        }


        }

    }

您可能应该将开关移到另一个方法,因为这是进行计算的地方

您似乎走在正确的道路上,但需要提示输入要转换的金额

System.out.print("Enter the type of currency: ");
int currencyType = Integer.parseInt(console.nextLine());

System.out.print("Enter currency amount: ");
double amount = Double.parseDouble(console.nextLine());

if (currencyType < 1 || currencyType > 11) {
    // TODO: Handle invalid input.
}

boolean toUSD = currencyType == 1;
double convertedAmount = convertCurrency(amount, currencyType, toUSD);
System.out.print(“输入货币类型:”);
int currencyType=Integer.parseInt(console.nextLine());
系统输出打印(“输入货币金额:”);
double amount=double.parseDouble(console.nextLine());
如果(currencyType<1 | | currencyType>11){
//TODO:处理无效输入。
}
布尔toUSD=currencyType==1;
double convertedAmount=convertCurrency(金额、币种类型、TOSD);

你需要
break在您的案例中。

您可能应该将开关移到另一种方法,因为这是计算发生的地方

您似乎走在正确的道路上,但需要提示输入要转换的金额

System.out.print("Enter the type of currency: ");
int currencyType = Integer.parseInt(console.nextLine());

System.out.print("Enter currency amount: ");
double amount = Double.parseDouble(console.nextLine());

if (currencyType < 1 || currencyType > 11) {
    // TODO: Handle invalid input.
}

boolean toUSD = currencyType == 1;
double convertedAmount = convertCurrency(amount, currencyType, toUSD);
System.out.print(“输入货币类型:”);
int currencyType=Integer.parseInt(console.nextLine());
系统输出打印(“输入货币金额:”);
double amount=double.parseDouble(console.nextLine());
如果(currencyType<1 | | currencyType>11){
//TODO:处理无效输入。
}
布尔toUSD=currencyType==1;
double convertedAmount=convertCurrency(金额、币种类型、TOSD);

你需要
break在你的箱子里。

这是我的代码。你可以试试,告诉我是否符合你的要求。 和

范围问题或重复变量

你们相遇可能是因为你们并没有写返回语句,也并没有在任何一个开关的情况下写“break”

public class ConverTest {

public static double convertCurrency(double amount, int currencyType, boolean isConvertToUSD){
    //  checks what type of currency was chosen and converts each it into US dollars

    System.out.println("the input type:" + currencyType); //you say you want to get the values used in my switch
    // statement.
    return 0.01; //i don't know what u want to do in this meshod.
}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    convertCurrency(100.0, currencyMenuOptionSelector(in), true);
}

public static int currencyMenuOptionSelector(Scanner console) {

    while (true) {
        System.out.println("Please select the currency type:");
        System.out.println("1. U.S. Dollars");
        System.out.println("2. Euros");
        System.out.println("3. British Pounds");
        System.out.println("4. Indian Rupees");
        System.out.println("5. Australian Dollars");
        System.out.println("6. Canadian Dollars");
        System.out.println("7. Singapore Dollars");
        System.out.println("8. Swiss Francs");
        System.out.println("9. Malaysian Ringgits");
        System.out.println("10. Japanese Yen");
        System.out.println("11. Chinese Yuan Renminbi");
        int currencyType = console.nextInt();
        switch (currencyType) {
        // cases 1-11 simply establishes each currency as a variable (not all cases are listed to avoid redundancy)
        case 1: {
            double USA = 1.00;
            return currencyType;
        }
        case 2: {
            double Euro = 0.89;
            return currencyType;
        }

            default: {
                System.out.println("Input failed validation. Please try again.");
                continue;
            }
        }

        }

    }
}

这是我的代码。你可以试试,告诉我是否符合你的要求。 和

范围问题或重复变量

你们相遇可能是因为你们并没有写返回语句,也并没有在任何一个开关的情况下写“break”

public class ConverTest {

public static double convertCurrency(double amount, int currencyType, boolean isConvertToUSD){
    //  checks what type of currency was chosen and converts each it into US dollars

    System.out.println("the input type:" + currencyType); //you say you want to get the values used in my switch
    // statement.
    return 0.01; //i don't know what u want to do in this meshod.
}

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    convertCurrency(100.0, currencyMenuOptionSelector(in), true);
}

public static int currencyMenuOptionSelector(Scanner console) {

    while (true) {
        System.out.println("Please select the currency type:");
        System.out.println("1. U.S. Dollars");
        System.out.println("2. Euros");
        System.out.println("3. British Pounds");
        System.out.println("4. Indian Rupees");
        System.out.println("5. Australian Dollars");
        System.out.println("6. Canadian Dollars");
        System.out.println("7. Singapore Dollars");
        System.out.println("8. Swiss Francs");
        System.out.println("9. Malaysian Ringgits");
        System.out.println("10. Japanese Yen");
        System.out.println("11. Chinese Yuan Renminbi");
        int currencyType = console.nextInt();
        switch (currencyType) {
        // cases 1-11 simply establishes each currency as a variable (not all cases are listed to avoid redundancy)
        case 1: {
            double USA = 1.00;
            return currencyType;
        }
        case 2: {
            double Euro = 0.89;
            return currencyType;
        }

            default: {
                System.out.println("Input failed validation. Please try again.");
                continue;
            }
        }

        }

    }
}

在哪里调用转换器方法?而且在每种情况下都应该有一个
中断
为了防止falltroughI想在存款方法和取款方法中调用converter方法(这些不在我发布的代码中)。变量是在switch语句中声明的,我猜正是因为这个原因,您才会遇到范围问题。switch语句关闭时,任何其他代码都无法访问这些变量。将变量声明为全局变量,看看这是否解决了问题。在哪里调用converter方法?而且在每种情况下都应该有一个
中断
为了防止falltroughI想在存款方法和取款方法中调用converter方法(这些不在我发布的代码中)。变量是在switch语句中声明的,我猜正是因为这个原因,您才会遇到范围问题。switch语句关闭时,任何其他代码都无法访问这些变量。将变量声明为全局变量,看看这是否解决了问题。这并不是我想要它做的。您的代码返回用户输入的选项号。我的意图是获取用户选择的货币,然后将该货币转换为美元。在我写出来的转换方法中,我可以以什么方式使用变量USA或Euro?对不起,如果我的问题不是很清楚,我可能会发表另一篇文章,提供更多关于我项目的信息。这不是我想要它做的。你的代码返回用户输入的选择号。我的意图是获取用户选择的货币,然后将该货币转换为美元。在我写出来的转换方法中,我可以以什么方式使用变量USA或Euro?对不起,如果我的问题不是很清楚,我可能会在另一篇文章中提供更多关于我的项目的信息。这将是完美的,但我需要有我的方法结构类似于我上面的方法。当我将switch语句移动到另一个方法时,我的验证就被搞砸了。我尝试在默认情况下调用currencyMenuOptionSelector(console)方法,但收到错误消息“console无法解析为变量”。我是否缺少/做错了什么?在
default
块上不需要大括号。
default
只是另一个
case
语句这将是完美的,但我需要让我的方法的结构与上面的方法类似。当我将switch语句移动到另一个方法时,我的验证就被搞砸了。我尝试在默认情况下调用currencyMenuOptionSelector(console)方法,但收到错误消息“console无法解析为变量”。我是否缺少/做错了什么?在
default
块上不需要大括号。
default
只是另一个
case
语句