Java:要求继续

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18717746/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 10:26:59  来源:igfitidea点击:

Java: Ask for continue

javaeclipsecalculatorrestart

提问by user2764700

I'm trying to make a calculator. These operators: x, +, -, /work fine.

我正在尝试制作一个计算器。这些运算符:x, +, -,/工作正常。

But I want the user to be able to do 2 things after he gets the answer on his math problem.

但是我希望用户在得到数学问题的答案后能够做两件事。

Ask user if he wants to continue.

询问用户是否要继续。

  1. If user types in yeshe gets to put in 2 numbers that it counts again.
  2. If the user types nojust shut down.
  1. 如果用户输入,yes他可以输入 2 个数字,再次计数。
  2. 如果用户键入no只是关闭。

Here's my code:

这是我的代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner Minscanner = new Scanner(System.in);
        int nr1 = Integer.parseInt(Minscanner.nextLine());
        int nr2 = Integer.parseInt(Minscanner.nextLine());
        int yes = Integer.parseInt(Minscanner.nextLine());//trying to fix reset
        int ans =0;
        int reset = J;/trying to make it reset if user types in yes
        String anvin = Minscanner.nextLine();

        if(anvin.equalsIgnoreCase("+")) {
            ans = nr1 + nr2;
        }
        else if(anvin.equalsIgnoreCase("-")) {
            ans = nr1 - nr2;
        }
        else if(anvin.equalsIgnoreCase("*")) {
            ans = nr1 * nr2;
        }
        else if(anvin.equalsIgnoreCase("/")) {
            ans = nr1 / nr2;
            System.out.println(ans);
        }
        if(anvin.equalsIgnoreCase("yes")) {
            return;
        }
    }
}

回答by Ruchira Gayan Ranaweera

You can refactor your code as bellow. This may help you

你可以重构你的代码如下。这可能会帮助你

    boolean status=true;
    while (status){
    Scanner scanner = new Scanner(System.in);
    Scanner scanner1 = new Scanner(System.in);
    System.out.println("Enter your two numbers one by one :\n");
    int num1 = scanner.nextInt();
    int num2 = scanner.nextInt();
    System.out.println("Enter your operation you want to perform ? ");
    int ans =0;
    String option = scanner1.nextLine();
    if(option.equalsIgnoreCase("+")) {
        ans = num1 + num2;
    }
    else if(option.equalsIgnoreCase("-")) {
        ans = num1 - num2;
    }
    else if(option.equalsIgnoreCase("*")) {
        ans = num1 * num2;
    }
    else if(option.equalsIgnoreCase("/")) {
        ans = num1 / num2;
    }
    System.out.println(ans);
     System.out.println("you want to try again press y press j for shutdown\n");
   Scanner sc = new Scanner(System.in);
        String input=sc.nextLine();
        if (input.equalsIgnoreCase("J")) {
            System.exit(0);
        } else if (input.equalsIgnoreCase("Y")) {
            status = true;
        }
    }

回答by Eel Lee

Put your code in a

把你的代码放在一个

do {
    ...
} while (condition);

loop, and in your case the condition would be something like wantToContinueif user say "yes".

循环,在您的情况下,条件类似于wantToContinue用户说“是”。

Then the program will not end unless user no longer wants to calculate.

然后程序不会结束,除非用户不再想计算。