Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用多个布尔类型的计算器的不同方法_Java_If Statement_Calculator_Boolean Logic - Fatal编程技术网

Java 使用多个布尔类型的计算器的不同方法

Java 使用多个布尔类型的计算器的不同方法,java,if-statement,calculator,boolean-logic,Java,If Statement,Calculator,Boolean Logic,我尝试在一个“if”命令上使用多个布尔类型创建计算器。我还尝试使用ASCII表中的数字42(*)、43(+)、45(-)和47(/),而不是符号。现在,对于一些resson来说,它不能同时处理数字和符号,我想知道为什么。我知道如何使用不同的方法解决问题,但我想了解为什么我的程序不起作用的逻辑,感谢所有能提供帮助的人 不同方法之一: [ 最初的问题是行System.out.println(num5+action+num6+“=”);尝试从2个双精度和一个字符组成字符串。这将在转换为字符串之前执行数

我尝试在一个“if”命令上使用多个布尔类型创建计算器。我还尝试使用ASCII表中的数字42(*)、43(+)、45(-)和47(/),而不是符号。现在,对于一些resson来说,它不能同时处理数字和符号,我想知道为什么。我知道如何使用不同的方法解决问题,但我想了解为什么我的程序不起作用的逻辑,感谢所有能提供帮助的人

不同方法之一: [


最初的问题是行
System.out.println(num5+action+num6+“=”);
尝试从2个双精度和一个字符组成字符串。这将在转换为字符串之前执行数值计算。要连接成字符串,只需使用
System.out.println(num5+“”+action+“”+num6+“=”);

您还询问是否有更好的方法来解决这个方程,而不使用if语句——不幸的是,这不是很优雅。您可以使用switch语句使其更清晰,如下图所示。您可能对Java的JavaScript库感兴趣,但如果您知道输入内容,switch语句就非常有用你会得到的

public static double doOperation (double x, double y, char op) {
    switch (op) {
        case '+': return x + y;
        case '-': return x - y;
        case '/': return x/y;
        case '*': return x*y;
    }
    return 0;
}

错误在于字符串的格式。您试图从两个双精度和一个执行数值计算的字符组成字符串,而不是字符串串联。System.out.println(num5+“”+action+“”+num6+“”=“”);解决此问题。谢谢Zachary,但我还有一个问题,如何在不多次使用“if”的情况下编写字符串的解决方案?
public static double doOperation (double x, double y, char op) {
    switch (op) {
        case '+': return x + y;
        case '-': return x - y;
        case '/': return x/y;
        case '*': return x*y;
    }
    return 0;
}