我试图让这个循环不断重复,直到结果可以被修改为1并且结果为0 这产生了一个分歧问题,我只想问一下答案是一个整数。所以答案应该是1,2,3,4等,但不是带小数位的答案。
double resulta = 1.3678; // Make it run once instead of do while
while (resulta % 1 != 0) {
int first = randInt(0,9);
int last = randInt(0,9);
MainActivity.result = (first / last);
resulta = MainActivity.result;
String Sfirst = String.valueOf(first);
String Slast = String.valueOf(last);
System.out.println(MainActivity.result);
question = "" + Sfirst + " / " + Slast + " = ?";
}
答案 0 :(得分:1)
问题在于:
MainActivity.result = (first / last); //you're doing an integer division here
resulta = MainActivity.result;
因为第一个和最后一个是两个整数,所以此除法的结果返回一个整数。
Why does it return an integer ?
但每个整数模1返回0,因此resulta % 1
总是等于为0,因此你的while循环永远不会结束。
答案 1 :(得分:0)
您正在测试resulta % 1 != 0
并且这是荒谬的,因为非整数(%
是浮点数)未定义resulta
。
您必须将resulta
更改为整数,或者您必须期望语句的非整数值。
答案 2 :(得分:0)
尝试这样的事情:
while((resulta - (long)resulta) != 0) {
//do stuff
}
如果resulta
为3.14159,则(long)resulta
将为3.任何时候resulta
都有小数点,上述条件检查此while
循环将返回{{ 1}}。