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();
}
}
我每次运行此代码时都会遇到错误。
线程“主”中的异常java.lang.Error:未解决的编译问题: 令牌“ else”上的语法错误,请删除该令牌
at mudit.main(mudd.java:28)
我希望它告诉输入的字符是字母(元音或辅音)还是数字
我正在使用vs代码编辑器。
答案 0 :(得分:0)
问题是if
语句块超过一行。如果该块仅是一行,则只能使用if
语句,else
语句或else if
语句而不能使用大括号。要解决此问题,只需将条件包裹在花括号中即可。
另一方面,在这种情况下中断不会做任何事情。您只能中断for-loop
,advanced for-loop
,while loop
,do-while loop
和switch
语句。我可能已经忘记了1或2种情况,所以请随时提醒我!
答案 1 :(得分:0)
如果“ if”或“ else”中有多行,则需要用{}括起来。现在应该可以使用。
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();
}
}