中断并继续不';我不能用Java工作

中断并继续不';我不能用Java工作,java,break,Java,Break,我制作了这个程序,它可以反转字符串。这可以通过两种方式实现。所以我想问用户首选的方法。为了摆脱if-else,我使用break关键字,每个选项后面都有一个标签 这个程序运行良好,没有中断和标签,但它给我错误时,使用中断 import java.util.Scanner; public class ReverseString { public static void main(String[] args) { System.out.println("Choose a

我制作了这个程序,它可以反转字符串。这可以通过两种方式实现。所以我想问用户首选的方法。为了摆脱
if-else
,我使用break关键字,每个选项后面都有一个标签

这个程序运行良好,没有中断和标签,但它给我错误时,使用中断

import java.util.Scanner;

public class ReverseString {

    public static void main(String[] args) {

        System.out.println("Choose a method:");
        Scanner ch = new Scanner(System.in);

        int choice = ch.nextInt();

        if (choice == 1)
        {
            break first;
        }
        else
        {
            break second;
        }

        first:

        Scanner in = new Scanner(System.in);

        System.out.print("Enter a string to reverse:");

        String original = in.nextLine();

        String reverse = "";
        int i, length = original.length();

        for (i=length-1; i>=0; i--)
        {
            reverse = reverse + original.charAt(i);
        }

        System.out.println(reverse);


        second:

        StringBuilder rev = new StringBuilder(in.nextLine());

        String revc = rev.reverse().toString();

        System.out.println(revc);


    }

}
和错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Syntax error, insert ":: IdentifierOrNew" to complete ReferenceExpression
    Syntax error, insert "AssignmentOperator Expression" to complete Assignment
    Syntax error, insert ";" to complete Statement
    Scanner cannot be resolved to a variable
    in cannot be resolved to a variable
    in cannot be resolved
    Syntax error, insert ":: IdentifierOrNew" to complete ReferenceExpression
    Syntax error, insert "AssignmentOperator Expression" to complete Assignment
    Syntax error, insert ";" to complete Statement
    StringBuilder cannot be resolved to a variable
    rev cannot be resolved to a variable
    in cannot be resolved
    rev cannot be resolved

    at welcome.ReverseString.main(ReverseString.java:25)

在Java中,
break
(和
continue
)主要用于循环中,
break
也在
开关中起作用。您可以使用
break
来打破标记块,但坦率地说,使用
if
语句来打破标记块没有多大意义。(详情请参阅。)

不要试图使用有效的“goto”,而是将两种反转方法放入方法中,然后从连接到
if
else
(当前有
break
)的块中调用适当的方法。

您可以在if语句中使用
break
,但必须标记这些块。请参见此示例:

if (choice == 1) first: {
    // ...
    break first;
    // ...
} else second: {
    // ...
    break second;
    // ...
}
但是,您不能以您试图使用它的方式使用
中断

相反,我建议您按照以下方式构建您的计划:

if (choice == 1) {
    // Code for choice 1
} else {
    // Code for choice 2
}
或者,更好的办法是,将代码分成更小的方法,然后

if (choice == 1) {
    method1();
} else {
    method2();
}

您使用break的方式是错误的,我知道这是一个编译问题。您正在
if
块中使用
break
break
用于循环-
,而
用于
跳过重命名迭代

在这里,您可以使用带有标签的goto。但goto不是组织程序流程的推荐方式。您最好更改程序的流程。顺便说一句,不要告诉break在java中不起作用:),它被使用和测试了数千次

希望能有所帮助。

非常感谢

您必须对循环使用
中断
继续

例如:

Outer:
       for(int i=0;i<5;i++)
       {

       }
外部:
对于(int i=0;i