Android studio if语句显示“不兼容类型”标志

时间:2015-12-28 21:04:21

标签: java android boolean

我正在Android studio中制作一个非常基本的练习应用程序,用于检查从用户获取的数字是否为三角形数字。例如:15。

我遇到的问题是我的if语句的第一部分是在Android Studio IDE中标记numberIncompatible types. Required boolean. Found int。 我已经设置了方法以期望返回一个布尔值,它确实如此。我不确定这个标志的确切原因。

public void getInput() {
    EditText usersInput = (EditText) findViewById(R.id.userField);
    int userInputNumber = Integer.parseInt(usersInput.getText().toString());
    System.out.println(userInputNumber);

    Numbers checkTriangular = new Numbers();
    checkTriangular.isTriangularNumber(userInputNumber);
}

class Numbers {
    public boolean isTriangularNumber(int number) {
        number = number*(number+1)/2;
        if (number) {
            return true;
        } else {
            return false;
        }
    }

4 个答案:

答案 0 :(得分:0)

这将测试数字是否为圆数。

public boolean isTriangularNumber(int number) {
    number = number*(number+1)/2;
    if (number % 1 == 0) {
        return true;
    } else {
        return false;
    }
}

答案 1 :(得分:0)

if (number)

期望number为布尔值。

我假设您正在考虑使用C

if (number)

的简写
if (number !=0)

java中没有这样的简写。

答案 2 :(得分:0)

这就是我的整体情况。 但最初我所追求的只是Android Studio给我的原因,Incompatible types. Required boolean. Found int,已经解释过了。

class Numbers {

        int number;

        public boolean isTriangularNumber(int number) {
            int x = 1;
            int triangularNumber = 1;

            while (triangularNumber < number) {
                x++;
                triangularNumber = triangularNumber +x;

            }

            if (triangularNumber == number) {
                return true;
            } else {
                return false;
            }
        }

所有的奥秘都解决了

答案 3 :(得分:0)

我的数学并不是很好,但是,我的理解是,如果数字为三角形,则以下将返回true(假设number > 0 ...您可以使用if (number > 0)或使用{来测试它{1}}将任何输入转换为正数):

Math.abs(number)