java - 我的基本货币转换器程序输出错误

标签 java

所以,代码应该转换货币,但它没有正确执行。我有一个变量 k(克罗地亚库纳... 1 欧元 = 7.5 KUNA),它是 1,例如,如果我想将 1 欧元转换为 1 美元,程序将金额 (1) 乘以 7.5,然后我得到KUNA 中的欧元金额,并且有效。但是,当我将该结果 (7.5) 除以 6.3(1 美元等于 6.3 库纳)时,我得到相同的数字。

import java.util.Scanner;

public class Conv {
    private double rez;
    private double rez2;
    private double svota;
    Scanner ul = new Scanner(System.in);

    public void PretvorbaInKunu(double y) {
        System.out.print("Insert amomunt: ");
        svota = ul.nextDouble();
        rez2 = svota*y;

    }

    public void PR2(double x) {
        rez = getRez2() / x;
    }

    public double getRez() {
        return rez;
    }
    public double getRez2() {
        return rez2;
    }
    public double getSvota() {
        return svota;
    }

}
import java.util.Scanner;

//Currency Converter

public class Vjezbica {
    public static void main(String[] args) {
        double e = 7.5;
        double d = 6.3;
        double p = 9.5;
        double k = 1.0;
        Conv more = new Conv();
        Scanner in = new Scanner(System.in);

        System.out.print("\t\tCurrency converter\nIz (e,p,d,k) - ");
        String iz = in.next();
        switch(iz) {
        case "e":
            more.PretvorbaInKunu(e);
            break;
        case "d":
            more.PretvorbaInKunu(d);
            break;
        case "p":
            more.PretvorbaInKunu(p);
            break;
        case "k":
            more.PretvorbaInKunu(k);
            break;
        }
        System.out.println(more.getRez2());

        System.out.print(" To  ");
        String u = in.next();
        switch(u) {
        case "e":
            more.PR2(e);
        case "d":
            more.PR2(d);
        case "p":
            more.PR2(p);
        case "k":
            more.PR2(k);
        }
        System.out.println(more.getSvota() + " " + iz + " is " + more.getRez() + " " + u);
    }
}

最佳答案

问题出在你的第二个 switch-case 语句中:你需要在每个 case 的末尾添加一个中断。

如果您像这样更改 Vjezbica 类,它应该可以工作:

import java.util.Scanner;

//Currency Converter

public class Vjezbica {

    public static void main(String[] args) {
        double e = 7.5;
        double d = 6.3;
        double p = 9.5;
        double k = 1.0;
        Conv more = new Conv();
        Scanner in = new Scanner(System.in);

        System.out.print("\t\tCurrency converter\nIz (e,p,d,k) - ");
        String iz = in.next();
        switch (iz) {
            case "e":
                more.PretvorbaInKunu(e);
                break;
            case "d":
                more.PretvorbaInKunu(d);
                break;
            case "p":
                more.PretvorbaInKunu(p);
                break;
            case "k":
                more.PretvorbaInKunu(k);
                break;
        }
        System.out.println(more.getRez2());

        System.out.print(" To  ");
        String u = in.next();
        switch (u) {
            case "e":
                more.PR2(e);
                break;//added break here
            case "d":
                more.PR2(d);
                break;//added break here
            case "p":
                more.PR2(p);
                break;//added break here
            case "k":
                more.PR2(k);
                break;//added break here
        }
        System.out.println(more.getSvota() + " " + iz + " is " + more.getRez() + " " + u);

        //you should also close the scanner at the end...
        in.close();
    }
}

关于java - 我的基本货币转换器程序输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57020342/

相关文章:

Fabric8 kubernetes 客户端和观察程序的 java.net.SocketException

java - 将 JSON 数组从 android 发送到 servlet

java - 用 Java 填充 map 的最有效方法

java - 如何在给定的双变量集中找到第二小的数字

java - 在 DIV HTML 中遍历或查找元素的最快方法

java - CXF 消息的上下文位于拦截器之外

java - POST后使用HttpClient执行GET时出现异常

java - 线程什么时候共享对象? - java

Java复制一个文件夹,不包括一些内部文件

java - 线程安全 - 传递给线程的最终局部方法变量?