我是Java新手编程的新手,我正在尝试学习绳索。我遇到了一个问题,问题源于我无法检查变量是否为整数。
int[] values = new int[3];
private Random rand = new Random();
num1 = rand.nextInt(70);
num2 = rand.nextInt(70);
num3 = rand.nextInt(70);
values[1] = num1 + num2
//we are dividing values[1] by num3 in order to produce an integer solution. For example (4 + 3) / 2 will render an integer answer, but (4 + 3) / 15 will not.
//The (correct) answer is values[2]
values[2] = values[1]/num3
if (num3 > values[1]) {
//This is done to ensure that we are able to divide by the number to get a solution (although this would break if values[1] was 1).
num3 = 2
while (values[2] does not contain an integer value) {
increase num3 by 1
work out new value of values[2]
}
} else {
while (values[2] does not contain an integer value) {
increase num3 by 1
work out new value of values[2] <--- I'm not sure if this step is necessary
}
}
System.out.println(values[2]);
答案 0 :(得分:2)
另一种方式:
if(value%1 == 0){
//True if Integer
}
E.g。 2.34f % 1
将为0.34
,但2f % 1 is 0.0
答案 1 :(得分:2)
以下情况永远不会发生,因为values
数组的类型为primitive int。因此,检查values[2]
是否为int是在事后。 values[]
将always
包含一个int,并且尝试向value数组添加一个非int类型的元素将导致抛出 ArrayStoreException 。
如果所分配的值的类型与组件类型不是赋值兼容(第5.2节),则抛出ArrayStoreException。
// All three are of type int
num1 = rand.nextInt(70);
num2 = rand.nextInt(70);
num3 = rand.nextInt(70);
// Not possible...
while (values[2] does not contain an integer value) {
初始化数值数组时,它将自动默认值为0
。
int[] values = new int[3]
System.out.println( Arrays.toString(values) );
> [0,0,0]
答案 2 :(得分:1)
如果将整数除以另一个整数,则总是有一个整数。
您需要模数(余数)操作
int num1 = 15;
int num2 = 16;
int num3 = 5;
System.out.println("num1/num3 = "+num1/num3);
System.out.println("num2/num3 = "+num2/num3);
System.out.println("num1%num3 = "+num1%num3);
System.out.println("num2%num3 = "+num2%num3);
如果模数不为0,那么结果将不是整数。
答案 3 :(得分:1)
如果输入值可以是整数以外的数字形式,请按
进行检查if (x == (int)x){
// Number is integer
}
如果传递了字符串值,请使用Integer.parseInt(string_var)。
答案 4 :(得分:0)
if(value == (int) value)
或长(64位整数)
if(value == (long) value)
或者可以安全地用浮点表示而不会损失精度
if(value == (float) value)
如果传递了字符串值,请使用Integer.parseInt(value)
;如果传递的输入是正确的整数,它将返回一个整数。
答案 5 :(得分:0)
您可以使用instanceof运算符来检查给定对象是否为整数。
if(num instanceof Integer)
System.out.println("Number is an integer");