Java Android studio if语句显示';不兼容类型';旗帜
我正在Android studio中制作一个非常基本的练习应用程序,用于检查从用户处获取的数字是否为三角形。例:15 我遇到的问题是,我的Java Android studio if语句显示';不兼容类型';旗帜,java,android,boolean,Java,Android,Boolean,我正在Android studio中制作一个非常基本的练习应用程序,用于检查从用户处获取的数字是否为三角形。例:15 我遇到的问题是,我的if语句的第一部分用不兼容的类型标记number。必需的布尔值。在Android Studio IDE中找到int。 我已经将该方法设置为期望返回布尔值,它确实返回了。我不知道这面旗帜升起的确切原因 public void getInput() { EditText usersInput = (EditText) findViewById(R.id.u
if
语句的第一部分用不兼容的类型标记number
。必需的布尔值。在Android Studio IDE中找到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;
}
}
这将测试数字是否为整数
public boolean isTriangularNumber(int number) {
number = number*(number+1)/2;
if (number % 1 == 0) {
return true;
} else {
return false;
}
}
要求数字为布尔值
我猜你在用C思考,在哪里
if (number)
是英语的简写
if (number !=0)
java中不存在这样的速记。这就是我的总体理解。 但最初我想知道的是为什么Android Studio会给我,
不兼容的类型。必需的布尔值。找到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;
}
}
类号{
整数;
公共布尔isTriangularNumber(整数){
int x=1;
int triangularNumber=1;
while(三角形编号<编号){
x++;
三角形编号=三角形编号+x;
}
如果(三角形编号==编号){
返回true;
}否则{
返回false;
}
}
所有的谜团都解开了我的数学不是很好,但是,我的理解是,如果数字是三角形的,下面的结果将返回真值(假设
number>0
…您可以使用if(number>0)
或使用math.abs(number)
将任何输入转换为正数):
if(number)
可能是您希望更仔细地查看的内容。那么……基于哪个条件,它需要返回true,什么时候应该返回false?太棒了,所以您需要这样的内容:return isTriangularNumber(number);//如果数字是三角形,则isTriangularNumber返回true,否则返回truefalse@RichardC:这与三角形数字无关,那么你需要什么呢?那你为什么说“是”对Kristy?那不一样。我给了你所有你需要解决的问题。你可能想等到他决定他需要什么。十进制数和不带小数的整数不同
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;
}
}
public boolean isTriangularNumber(int number) {
return (((Math.sqrt((8*number)+1)) % 1) == 0)
}