Java 错误:无法访问的代码
为什么此方法返回错误:错误:无法访问的代码谢谢Java 错误:无法访问的代码,java,if-statement,methods,Java,If Statement,Methods,为什么此方法返回错误:错误:无法访问的代码谢谢 public static boolean zeroCheck(double numberTwo, String operator) { if (numberTwo == 0) { return false; if(operator == "/" || operator == "%") System.out.println("You
public static boolean zeroCheck(double numberTwo, String operator) {
if (numberTwo == 0) {
return false;
if(operator == "/" || operator == "%")
System.out.println("You cannot use a zero to divide or mod.");
} else return true;
}
}
错误:
文件:C:\JAVA\LABS\LabSix.JAVA[行:228]
错误:无法访问的代码
返回一个值,然后再处理从未达到的其余代码。使用return
语句时,它会自动结束代码并在您的情况下返回boolean
只需将return
语句放在块的末尾
public static boolean zeroCheck(double numberTwo, String operator) {
if (numberTwo == 0) {
if (operator == "/" || operator == "%") {
System.out.println("You cannot use a zero to divide or mod.");
}
return false;
} else return true
}
顺便说一下,如果要比较String
,请使用equals(…)
方法,因为String
不是像int
或double
等那样的基本类型。通常,在比较所有对象时使用equals(..)
if (operator.equals("/") || operator.equals("%"))
返回一个值,然后再处理从未达到的其余代码。使用return
语句时,它会自动结束代码并在您的情况下返回boolean
只需将return
语句放在块的末尾
public static boolean zeroCheck(double numberTwo, String operator) {
if (numberTwo == 0) {
if (operator == "/" || operator == "%") {
System.out.println("You cannot use a zero to divide or mod.");
}
return false;
} else return true
}
顺便说一下,如果要比较String
,请使用equals(…)
方法,因为String
不是像int
或double
等那样的基本类型。通常,在比较所有对象时使用equals(..)
if (operator.equals("/") || operator.equals("%"))
我想你是想在接线员检查后把报税表弄错。发生的情况是,在代码有机会检查if语句之前,当numberTwo为0时,函数返回,使其成为不可访问的代码。我假设您打算在运算符检查后将返回设置为false。发生的情况是,在代码有机会检查if语句之前,当numberTwo为0时,函数返回,使其成为无法访问的代码别担心,这是新手的常见误解,不仅仅是你。:-)return
关键字做两件事:
确定函数的返回值,以及
此时退出函数
新来者有时认为它只做第一件事,而不是第二件事。(有些语言实际上是两种语言分开完成的,Java不是其中之一。)
因此,在您的示例中,无法访问的代码是返回false之后的代码代码>,因为返回false当执行代码>语句时,它将退出函数
只需将其放在该块中的其他代码之后:
public static boolean zeroCheck(double numberTwo, String operator)
{
if (numberTwo == 0)
{
if (operator.equals("/") || operator.equals("%"))
{
System.out.println("You cannot use a zero to divide or mod.");
}
return false;
}
else // See note #3 below, you don't really need this
{
return true;
}
}
关于上述代码的几个其他注释:
您不会将Java中的字符串与==
进行比较,而是使用str.equals(otherStr)
。更多:
请注意,我在内部块周围添加了大括号(附加到if(operator.equals…
)的大括号)。严格来说,它们不是必需的,但是当您在外部块中使用大括号(必须这样做)时,将其从内部块中删除可能会使以后编辑代码的人出错
由于您的if
块以return false结束;
,因此不需要else
;您只需跟随if
块的结尾,返回true;
如果进入该块,则无法访问它,因为您当然退出了该函数
如果numberTwo
为0,则上面的代码返回false
,即使运算符不是/
或%
。我认为您的原始代码就是要这样做的,但我想我会标记它
在上文第3节中,另一个选项是记住变量中的返回值:
public static boolean zeroCheck(double numberTwo, String operator)
{
boolean numberTwoIsZero = numberTwo == 0;
if (numberTwoIsZero)
{
if (operator.equals("/") || operator.equals("%"))
{
System.out.println("You cannot use a zero to divide or mod.");
}
}
return numberTwoIsZero;
}
别担心,这是新来者常见的误解,不仅仅是你。:-return
关键字有两个作用:
确定函数的返回值,以及
此时退出函数
新来者有时认为它只做第一件事,而不是第二件事。(有些语言实际上是两种语言分开完成的,Java不是其中之一。)
因此,在您的示例中,无法访问的代码是返回false之后的代码代码>,因为返回false当执行代码>语句时,它将退出函数
只需将其放在该块中的其他代码之后:
public static boolean zeroCheck(double numberTwo, String operator)
{
if (numberTwo == 0)
{
if (operator.equals("/") || operator.equals("%"))
{
System.out.println("You cannot use a zero to divide or mod.");
}
return false;
}
else // See note #3 below, you don't really need this
{
return true;
}
}
关于上述代码的几个其他注释:
您不会将Java中的字符串与==
进行比较,而是使用str.equals(otherStr)
。更多:
请注意,我在内部块周围添加了大括号(附加到if(operator.equals…
)的大括号)。严格来说,它们不是必需的,但是当您在外部块中使用大括号(必须这样做)时,将其从内部块中删除可能会使以后编辑代码的人出错
由于您的if
块以return false结束;
,因此不需要else
;您只需跟随if
块的结尾,返回true;
如果进入该块,则无法访问它,因为您当然退出了该函数
如果numberTwo
为0,则上面的代码返回false
,即使运算符不是/
或%
。我认为您的原始代码就是要这样做的,但我想我会标记它
在上文第3节中,另一个选项是记住变量中的返回值:
public static boolean zeroCheck(double numberTwo, String operator)
{
boolean numberTwoIsZero = numberTwo == 0;
if (numberTwoIsZero)
{
if (operator.equals("/") || operator.equals("%"))
{
System.out.println("You cannot use a zero to divide or mod.");
}
}
return numberTwoIsZero;
}
返回的句子应该放在最后。欢迎使用Stack Overflow!在发布之前一定要搜索可能重复的问题。我投票结束这个问题,因为我同意上面的Brian。哦,是的,这是一个重复的问题,我下次会更彻底地搜索。请关闭它。@JasonIvey:完成。即使问题已结束。请享受您的Java学习!返回的句子应该放在最后。欢迎使用Stack Overflow!请确保在po之前搜索可能重复的问题