Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
if语句在Java中是冗余的_Java_If Statement_Return_Conditional Statements - Fatal编程技术网

if语句在Java中是冗余的

if语句在Java中是冗余的,java,if-statement,return,conditional-statements,Java,If Statement,Return,Conditional Statements,我在NetBeans上看到一个灯泡,上面写着“if语句是多余的” 我想知道这两者是如何相等的 public boolean isVowel(char in) { char temp = Character.toLowerCase(in); if (temp == 'a' || temp == 'e' || temp == 'i' || temp == 'o' || temp == 'u') { return true; } else

我在NetBeans上看到一个灯泡,上面写着“if语句是多余的”

我想知道这两者是如何相等的

public boolean isVowel(char in)
{
    char temp = Character.toLowerCase(in);

    if (temp == 'a' || temp == 'e' || temp == 'i' || temp == 'o' || temp == 'u')
    {
        return true;
    }
    else
    {
        return false;
    }
}

我可以看到,如果其中一个元音与temp匹配,它将如何返回true。然而,我并不认为它会返回错误。如果所有条件都不满足,它会简单地返回false吗

解决:我用错误的方式看待问题。要返回false,每个条件语句都必须是false。理想情况下,如果return语句等价于:

return false || false || false || false || false;
如果满足任何一个条件,则为true

return false || false || false || false || true;
谢谢你们,真的很有帮助

这个表达式:

(temp == 'a' || temp == 'e' || temp == 'i' || temp == 'o' || temp == 'u') 
计算布尔值。if语句测试该值。因此,不必在IRE中测试这个表达式,只需返回if/else子句中的布尔值即可

编辑你能证明你的字符是元音吗? 这样做:

public boolean isVowel(char in) {

    return "aeiou".indexOf(Character.toLowerCase(in)) < 0;
    }
public boolean是元音(char-in){
返回“aeiou”.indexOf(Character.toLowerCase(in))<0;
}

这两个语句是相同的

int x = #; //user input
if (x==1) {  //any condition resulting in a true or false
    return true;
} else {
     return false;
}


这两个语句实际上是相同的(如果
语句是多余的,
),下面是原因

=
是一个相等运算符,这意味着,如果左侧与右侧匹配,则计算结果为
true
,否则计算结果为
false
|
是一个条件运算符,这意味着,如果左侧的等式计算结果为
false
,它将检查右侧,查看其计算结果是否为
true
(或者,如果左侧计算结果为
true
,则表达式将计算结果为
true
,称为
短路
). 如果所有表达式的计算结果均为
false
,则整个表达式的计算结果将为
false

因此,
if
语句实际上变成:

if(<expression>==true) { //in the case that the conditional evaluates to true
    return true;
}
else { //in the case the conditional evaluates to false
    return false;
}
布尔值是数字(字符cc){ //开始//测试cc是否为数字 返回( (cc==“0”) |(cc=='1') |(cc=='2') |(cc=='3') |(cc='4') |(cc='5') |(cc=='6') |(cc=='7') |(cc=='8') |(cc=‘9’);
}//isNumeric

是的,因为表达式
temp='a'| | temp='e'| temp='i'| | temp='o'| | temp='u'
的结果将是
false
…啊,我现在明白了。如果返回false,则每个条件都必须等于false。我对这个问题的看法是错误的。你能详细说明一下吗?“z”应该是什么?我改进了我的答案。
return (x==1); //same thing, returning true if true, false if false;
if(<expression>==true) { //in the case that the conditional evaluates to true
    return true;
}
else { //in the case the conditional evaluates to false
    return false;
}
return <expression> //will be true if true, false if false