0

所以这可能是一个非常愚蠢的问题,但在你把这篇文章烧成灰烬之前,请听我说完 XD。下面我写了三个基本类,它们都完成了同样的事情,但是通过不同的方式:

A级(休息)-

import java.util.Scanner;
public class ClassA
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        while(true)
        {
            System.out.print("Enter a sentence (/q to quit): ");
            String sentence = in.nextLine();

            if(sentence.equals("/q"))
                break;
            else
                System.out.println("Thank you!");
        }
    }
}

B类(返回)-

import java.util.Scanner;
public class ClassB
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        while(true)
        {
            System.out.print("Enter a sentence (/q to quit): ");
            String sentence = in.nextLine();

            if(sentence.equals("/q"))
                return;
            else
                System.out.println("Thank you!");
        }
    }
}

C类( System.exit(0) ) -

import java.util.Scanner;
public class ClassC
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        while(true)
        {
            System.out.print("Enter a sentence (/q to quit): ");
            String sentence = in.nextLine();

            if(sentence.equals("/q"))
                System.exit(0);
            else
                System.out.println("Thank you!");
        }
    }
}

虽然我更喜欢 A 类和 C 类,但 B 类有什么问题吗?更具体地说,使用return语句退出main程序方法是不好的做法吗?如果是这样,为什么?

提前致谢!

4

1 回答 1

0

使用return是正确的做法,因为它使您main更容易测试——您的测试框架不需要拦截退出尝试。

于 2014-04-13T00:33:11.320 回答