因此,对于家庭作业,我的任务是编写包含5种静态方法的代码。其中两人要求如下:
"编写一个以整数X作为参数的方法,如果X是偶数则返回true,如果X是奇数则返回false。"
和
"编写一个以正整数N作为参数的方法,如果N为素数则返回true,否则返回false。假设N> 1"。
我写了他们的代码
public class MethodSignature {
public static boolean evenCheck(int x){
if(x % 2 == 0){
return true;
}
else{
return false;
}
}
public static boolean primeCheck(int N){
for(int i=2;i<N;i++){
if(N % i == 0){
return false;
}
}
return true;
}
public static void main(String [] args){
int x = 3;
int N = 5;
System.out.println(evenCheck(x));
System.out.println(primeCheck(N));
}
}
我不清楚我是否需要打印出真或假的方法。在我将println添加到方法调用之前,显然他们没有打印。所以我想我有两个问题:布尔方法是否必须打印true / false才能返回true false?如果我被要求专门做到这一点,我是以最简单/最有效的方式做到的吗?还是有什么我想念的?
非常感谢你们 d
答案 0 :(得分:0)
回答你的问题
:布尔方法是否必须打印true / false才能返回true false?
没有。情况永远不会如此,也不会发生。但你是对的,一个声明返回类型的方法,它必须在正文中返回相同的类型。
e.g。
public boolean getBooleanValue(); // has to return a boolean
public void getBooleanValue; // does not return anything, but has a misleading methodname
在这两种方法中,您仍然可以打印任何内容。两者都没有任何关系。
答案 1 :(得分:0)
这里要提到的一点是命名很重要。让我通过快速重写一些代码来告诉你我的意思:
public static boolean isEven(int x){
if(x % 2 == 0){
return true;
}
return false;
}
重点是:该方法名称已经表明该方法将告诉您提供的参数是否为。
但回到你的问题:如果某个方法执行某种日志记录或跟踪的事实是正交,那么该方法是什么实际上在做。含义:上面的 isEven 方法可以告诉你数字是否是偶数。如果你认为此方法也打印某些/某处有用,那么您只需将此类代码添加到您的方法中即可。
换句话说:我们无法告诉您哪种打印陈述会对您有所帮助!因此 - 您的代码,您的决定。
从“现实世界”的角度来看事物时,一方面这些跟踪陈述是必不可少的;但另一方面,人们也会进行很多好的单元测试,以帮助快速调试问题;因此,这种痕迹印刷品不是“必须拥有的”!
答案 2 :(得分:0)
印刷和退货是两种不相关的事情。 打印用于通知用户某事;
public static boolean evenCheck(int x){
if(x % 2 == 0){
System.out.println(x + " is even");
return true;
} else {
System.out.println(x + " is odd");
return false;
}
}
我修改了你的evenCheck()方法,以告知用户x是偶数还是奇数。打印输出不是强制性的,如果删除它不会以任何方式影响代码,纯粹用于通知目的
因为您使用返回类型boolean
- public static boolean evenCheck(int x)
定义了该方法,所以这要求您必须包含返回值true或false
答案 3 :(得分:0)
该assignement指定方法返回bool,因此您不需要打印值。
您可以用更短的方式写下evenCheck
方法:
public static boolean evenCheck(int x){
return (x % 2 == 0);
}
操作%和零的结果之间的比较已经是bool,不需要添加if / else语句。
您现在返回比较结果。
primeCheck
方法很好,但您可以添加一些改变计算的性能
public static boolean primeCheck(int N)
{
int middle = (int) Math.sqrt(N) + 1;
for (int i = 3 ; i <= middle ; i=i+2)
{
if (N % i == 0)
{
return false;
}
}
return true;
}
half+1
N
的素数,half+1
之后无需检查所有号码。