/* File name: IsConsonant.java
* --------------------------------------
* Tests alphabets for consonants
*/
import acm.program.*;
public class IsConsonant extends ConsoleProgram {
public void run() {
String ch = readLine ("Enter an alphabet: ");
isEnglishConsonant(ch.charAt(0));
if (true){
println("True");
} else {
println("False");}
}
private boolean isEnglishConsonant(char ch){
switch (Character.toUpperCase(ch)){
case 'A':
case 'E':
case 'I':
case 'O':
case 'U':
return false;
default:
return true;
}
}
}
答案 0 :(得分:4)
if (true)
总是测试为真。你需要做
if (isEnglishConsonant(ch.charAt(0)))
代替。
答案 1 :(得分:3)
代码isEnglishConsonant(ch.charAt(0));
中的第3行似乎返回一个布尔值,您不存储在任何变量中。如果我没有错,请检查一下。
答案 2 :(得分:1)
public void run() {
String ch = readLine ("Enter an alphabet: ");
if (isEnglishConsonant(ch.charAt(0))){
println("True");
} else {
println("False");
}
}
private boolean isEnglishConsonant(char ch){
switch (Character.toUpperCase(ch)){
case 'A': case 'E': case 'I': case 'O': case 'U':
return false;
default:
return true;
}
}
答案 3 :(得分:1)
如果你的检查是否属实,那将永远如此!
if (true){
放isEnglishConsonant(ch.charAt(0))
代替true
,这就是你要检查的内容!
答案 4 :(得分:0)
if (true)
将始终返回true
。
相反:
boolean consonant = isEnglishConsonant(ch.charAt(0));
if (consonant) {
println("True");
} else {
println("False");
}
您忘了在break
声明中添加case
。
switch (Character.toUpperCase(ch)){
case 'A': case 'E': case 'I': case 'O': case 'U':
return false;
break;
default:
return true;
}
答案 5 :(得分:0)
这里你不是直接比较布尔返回方法。所以,它不起作用。将其更改为
if(isEnglishConsonant(ch.charAt(0)))
{
println("True");
}
else
{
println("False");
}