0

我有三个变量 int value1、value2 和一个字符串运算符。我想检查 if 条件。假设 value1=4,value2=3 并且在 operator='>' 中。那么我如何检查示例的 if 条件 -

int value1=4;
int value2=3;

String operator=">";
if (value1+operator+value2)
{
 System.out.println("hello");
}
i know the this is wrong but how to correct it..
4

5 回答 5

1

您将无法直接使用字符串。您必须首先检查它是哪种运算符,然后执行显式数学运算。

public boolean applyOperator(String op, int a, int b) {
    if (">".equals(op)) {
        return a > b;
    } // the others are an exercise to the reader.
}

// later in the code

if(applyOperator(operator, value1, value2)) {
    System.out.println("Hello world!");
}
于 2013-03-22T04:37:49.587 回答
1

可能最简单的方法是为if您希望使用的每个可用运算符创建一个声明。

int value1=4;
int value2=3;

String operator=">";
if(operator.equals(">"))
{
    if(value1 > value2)
    {
        System.out.println("hello");
    }
}
else if(operator.equals("<"))
{
    // And so on...
}
于 2013-03-22T04:38:35.357 回答
0

你可以简单地给这个。

if (value1 > value2)

顺便说一句,你为什么要给operatorin aString然后,使用它String而不是这样的运算符?对此有什么特殊要求吗?在这种情况下,@Makoto 的回答对您来说是一个不错的选择。

于 2013-03-22T04:36:27.963 回答
0

value1+operator+value2 将是一个字符串,它不是 boolean ,所以需要if so 而不是if (value1+operator+value2)putif (value1 > value2)

于 2013-03-22T04:40:47.357 回答
0

像这样比较java中的两个整数:

if (value1 > value2) {
    System.out.println("Hello");
}

您不应该将运算符放入字符串中。在 java 中,'+' 用于数字相加和字符串连接,而不是构建表达式。

于 2013-03-22T04:44:46.073 回答