【发布时间】:2020-10-15 23:40:26
【问题描述】:
import java.util.Scanner;
import javax.lang.model.util.ElementScanner14;
class mudit {
public static void main(final String[] args) {
final Scanner input = new Scanner(System.in);
System.out.print("Enter!!!");
final char n = input.next().charAt(0);
art :
if ((n >= 'a' && n <= 'z' ) || (n >= 'A' && n <= 'z'))
System.out.println(n + " is an alphabet.");
dart :
if ( n == 'a' || n == 'e' || n == 'i' || n == 'o' || n == 'u' || n == 'A' || n == 'E' || n == 'I' || n == 'O' || n == 'U')
System.out.println("VOWEL");
break dart;
else
System.out.println("CONSONANT");
break dart;
else if ( n * 1 == n)
System.out.println(n + " is a numerical value.");
else
System.out.println("Something else");
input.close();
}
}
每次运行此代码时都会遇到错误。
线程“main”java.lang.Error 中的异常:未解决的编译问题: 标记“else”的语法错误,删除此标记
at mudit.main(mudd.java:28)
我想让它知道输入的字符是字母(元音或辅音)还是数字
我正在使用 vs 代码编辑器。
【问题讨论】:
-
尝试将整个
if块括在括号{ }中。目前break dart;不在if块中。你应该避免标签和标签中断。我已经好几年没看到有人用过了。 -
也许看看this 并专注于正确使用语法(例如括号)。
-
else if ( n * 1 == n)始终为“真”。 java是强类型的,当通过'n * 1'输入时,字符'1'不是数字1。它是字符'1'的ascii代码。 Java 不是 javascript :)
标签: java if-statement switch-statement nested-loops break