首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Main方法重新运行Main方法

从Main方法重新运行Main方法
EN

Stack Overflow用户
提问于 2013-10-27 12:22:45
回答 5查看 14.3K关注 0票数 0

基本上,对于这个数学测验,我必须编程的最后一件事是,我必须询问用户是否愿意回答更多的问题,如果愿意,则重新运行Main方法中的所有内容。如果不是,则打印再见。说“不”很容易,但是如果他们说“是”,我不确定如何告诉它重新运行main方法。下面是我的main方法中的代码。

代码语言:javascript
运行
复制
 public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    int digit = 0;

    String result1 = getUserChoice("");

    digit = getNumberofDigit1(digit);

    int numberOfProblems = amountOfProblems();

    for (int i = 0; i < numberOfProblems; i++) {
    int number1 = getRandomNumber1(digit);
    int number2 = getRandomNumber2(digit);

    System.out.println("Enter your answer to the following problem: \n" + 
            number1 + result1 + number2);
    int correctAnswer = getCorrectAnswer(number1, result1, number2);

    int userAnswer = getUserAnswer();

    CheckandDisplayResult(correctAnswer, userAnswer);
    }
        System.out.println("Would you like to solve more probelms(Y/N)? ");
        String moreProblems = in.next();

        if ("Y".equals(moreProblems)){
            digit = 0;

    result1 = getUserChoice("");

    digit = getNumberofDigit1(digit);

    numberOfProblems = amountOfProblems();

    for (int i = 0; i < numberOfProblems; i++) {
    int number1 = getRandomNumber1(digit);
    int number2 = getRandomNumber2(digit);

    System.out.println("Enter your answer to the following problem: \n" + 
            number1 + result1 + number2);
    int correctAnswer = getCorrectAnswer(number1, result1, number2);

    int userAnswer = getUserAnswer();

    CheckandDisplayResult(correctAnswer, userAnswer);
    }
        System.out.println("Would you like to solve more probelms(Y/N)? ");
        moreProblems = in.next();

          if ("Y".equals(moreProblems)){

        }
        System.out.println("Thank you for taking this quiz, Goodbye!");

}

现在我尝试了一些类似的东西,

if "Y".equals(moreProblems)){复制并传递main方法}

但这有一个需要无限循环的错误,因为你必须在每个if of yes中有更多的问题语句,这意味着它永远不会结束编码,你将永远保持复制和粘贴。

EN

回答 5

Stack Overflow用户

发布于 2013-10-27 12:27:26

你可以把所有你想要“重新运行”的代码放在一个while循环中:

代码语言:javascript
运行
复制
boolean run = true;
while (run) {
    // Here your code
    // Here input if user want to re-run
    if (getUserChoice("").equals("NO"))
        run = false;
}
票数 3
EN

Stack Overflow用户

发布于 2013-10-27 12:30:31

除了其他人的建议之外,这是我更喜欢的方法:

代码语言:javascript
运行
复制
while(true) {
    //do all your stuff
    if(/*some exit condition*/) { break; }
}
票数 2
EN

Stack Overflow用户

发布于 2013-10-27 12:26:33

您可以做的是将main()中的所有内容移动到另一个称为interact()的静态方法中。然后在main()中,只要用户想要与您的程序交互,就有调用interact()的逻辑。换句话说,将数学测验放入一种方法中,并将测验呈现到main()中。如果需要,您的程序将更易于阅读和进一步修改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19614599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档