【问题标题】:Is it bad to use "return" to escape from the main method?使用“return”从main方法中逃脱是不是很糟糕?
【发布时间】:2014-05-27 02:18:57
【问题描述】:

所以这可能是一个非常愚蠢的问题,但在你把这篇文章烧成灰烬之前,请听我说完 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 方法是不好的做法吗?如果有,为什么?

提前致谢!

【问题讨论】:

    标签: return break system.exit


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 2011-09-20
      • 2020-06-07
      • 2010-12-09
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-24
      相关资源
      最近更新 更多