如何在嵌套的if ... else if ... else循环内的Java中使用switch ... case循环?

时间:2020-06-25 13:34:49

标签: java if-statement switch-statement nested-loops break

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代码编辑器。

2 个答案:

答案 0 :(得分:0)

问题是if语句块超过一行。如果该块仅是一行,则只能使用if语句,else语句或else if语句而不能使用大括号。要解决此问题,只需将条件包裹在花括号中即可。

另一方面,在这种情况下中断不会做任何事情。您只能中断for-loopadvanced for-loopwhile loopdo-while loopswitch语句。我可能已经忘记了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();
    }
}