if语句在Java中是冗余的
我在NetBeans上看到一个灯泡,上面写着“if语句是多余的” 我想知道这两者是如何相等的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
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