使用“return”从main方法中逃脱是否很糟糕?

Posted

技术标签:

【中文标题】使用“return”从main方法中逃脱是否很糟糕?【英文标题】: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 方法是不好的做法吗?如果有,为什么?

提前致谢!

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于使用“return”从main方法中逃脱是否很糟糕?的主要内容,如果未能解决你的问题,请参考以下文章

在 Vuex 中不使用操作就提交突变是否很糟糕?

在 iOS5 中,我在图库中切换图片的方法很糟糕

从域对象调用 Grails 服务是否很糟糕? [关闭]

插入和删除查询是不是可以从锁定等待超时中逃脱?

使角色从镜头中逃脱

React 中使用 Refs 改变样式是否很糟糕?