【发布时间】:2015-07-03 11:20:13
【问题描述】:
只是好奇有没有办法设置一个 if 语句条件来检查值是否等于数据类型。比如 if (x=int) 之类的东西。
我想创建一个检查素数的程序,但除了将数字(由用户输入)除以积木编号(2-9(不包括 1,因为所有数字都是可整除 ...)),如果它们都返回一个浮点数,那么这个数字是素数。
我也认为这种方式效率低下,但我也没有任何其他线索我将如何做到这一点。因此,如果可能的话,一些想法也会奏效。
这是代码的结构:
package innocence;
import java.util.*;
class GS1
{
public static void main(String[]args)
{
Scanner input = new Scanner(System.in);
double num;
System.out.println("Enter a number to check if it is prime or not");
num=input.nextDouble();
if((num % 2 == float) || (num % 3== float) || (num % 4 == float)|| (num % 5 == float)|| (num % 6 == float)|| (num % 7 == float)|| (num % 8 == float)|| (num % 9 == float) ) // float returns an error but i want to do it so it checks if it is a float or not
{
System.out.println("The number you haver entered," + num + "is a prime number");
}
else
{
System.out.println("The number entered is not prime");
}
}
}
【问题讨论】:
-
余数永远不会是
float。 -
我通常做的是将数字与“四舍五入”的数字进行比较。看看 Math.round()。
-
@ElliottFrisch 如果你的意思是:
%对double的操作永远不会有类型float:是的。但是Math.PI % 3返回一个小数。 -
@Jayden Freh 我的意思是,您不必检查余数是否是浮点实例(即使是,它实际上可能包含一个整数)。您应该做的是 x==Math.round(x) 或 x==(int)x 之类的操作,以便确定 x 是否为整数。最后考虑使用循环进行连续比较 =)
标签: java if-statement type-conversion