如何检查方法是否返回true或false?

时间:2020-02-06 18:26:13

标签: java

所以我有这个代码

public static boolean isVowel (char c) { 

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

        else
        {
            return false;
        }
    }

和此代码采用两种单独的方法

    if (isVowel == true()) //I know this is wrong but how could I make it work?
        {
            //run command
        }
        else 
        {
            //run command
        }

我如何让if (isVowel())测试if isVowel是否正确?

4 个答案:

答案 0 :(得分:2)

public static boolean isVowel (char c) { 
    // concise code here
    return (c=='a'|| c=='e'|| c=='i'|| c=='o'|| c=='u');
}

// your fix here
if (isVowel(aCharVariable)) {
    // your code here
} else {
    // your code here
}

简洁明了。

答案 1 :(得分:0)

我不知道我是否回答正确,但这是我认为满足您要求的内容:

if (isVowel(/* put a char here */) == true) {
     // Do stuff
} else {
    // Do other stuff
}

在这种情况下(由于isVowel()的类型为boolean,因此您也可以这样做,这样做更加优雅:

if (isVowel(/* put a char here */)) {
    // Do stuff...

之所以可行,是因为if语句检查的条件不是布尔状态(truefalse)。

答案 2 :(得分:0)

在Java中,if语句检查其操作数是true还是false。操作数只能是boolean类型(在一定程度上是框式Boolean的变体)。

boolean b = true;
if (b) {
  System.out.println("b was true");
}

除了将静态值/文字true分配给变量外,还可以分配方法调用的结果:

boolean b = isVowel('a');
if (b) {
  System.out.println("a is a vowel");
}

现在,您不一定需要该变量,您可以内联它并直接使用方法调用的结果:

if (isVowel('e')) {
  System.out.println("e is a vowel too");
}

请注意,某些运算符,例如==!=<也返回布尔值:

boolean greater = 5 > 3;
boolean equal = null == null;
boolean different = new Object() == new Object();

if (greater) {
  System.out.println("5 is greater than 3");
}

if (equal) {
  System.out.println("null equals null");
}

if (different) {
  System.out.println("Two object instances have different idententity");
}

当然,这里不需要变量,可以将比较表达式直接放入if中:

if (5 > 3) {
  System.out.println("5 is greater than 3");
}

if (null == null) {
  System.out.println("null equals null");
}

if (new Object() == new Object()) {
  System.out.println("Two object instances have different idententity");
}

甚至:

if ((5 < 3) == false) {
  System.out.println("The (logical) statement '5 is less than 3' is false. Therefore, the result of the boolean comparison is true and this code is executed");
}

答案 3 :(得分:0)

另一种摆脱所有错误的方式。

private static final Set<Character> VOWELS = ImmutableSet.of('a','e','i','o','u');
public boolean isVowel(char c) {
    return VOWELS.contains(c);
}

if(isVowel('a')) {
  //do stuff
}