所以我有这个代码
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
是否正确?
答案 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语句检查的条件不是布尔状态(true
或false
)。
答案 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
}