我正在Android studio中制作一个非常基本的练习应用程序,用于检查从用户获取的数字是否为三角形数字。例如:15。
我遇到的问题是我的if
语句的第一部分是在Android Studio IDE中标记number
,Incompatible 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;
}
}
答案 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)