简体   繁体   English

需要Java循环帮助

[英]Java Looping Help Needed

Recently I started programming in java so I don't know too much but I need some help. 最近,我开始用Java编程,所以我不太了解,但是我需要一些帮助。 I wrote a calculator (if you can even call it that...) there isn't a gui or anything yet but I wanted to revise my code into a loop so it would take the users first number, second number and what they wanted to do (add subtract ect) and solve it and then re-loop so it would do it again. 我写了一个计算器(如果您甚至可以称呼它……)还没有gui或其他任何东西,但是我想将代码修改为循环,以便将用户的第一个数字,第二个数字以及他们想要的内容做(加减ect)并求解,然后重新循环,以便再次执行。 I tried a do-while loop but I couldn't get it to work. 我尝试了一个do-while循环,但无法正常工作。

import java.util.Scanner;

public class Calculator {

    public static void main(String [] args){

        Scanner in=new Scanner(System.in);

        long sum = 0;
        long num1 = 0;
        long num2 = 0;
        char s=' ';
        String answer="yes";

        border();
        System.out.println("Acara's Calculator™ V_.01");

        border();
        System.out.println("What is your first number? ");
        num1=in.nextInt();

        System.out.println("What is your second number? ");
        num2=in.nextInt();

        System.out.println("What operation would you like to do?");
        System.out.println("Press '+' for addition, '-' for subtraction, '/' for division or '*' for multiplication.");
        s=in.next().charAt(0);

        if (s=='/'){
            sum=num1/num2;
            System.out.println("Your answer is : " + sum);
            }
        else if (s=='*'){
            sum=num1*num2;
            System.out.println("Your answer is : " + sum);
        }
        else if (s=='+'){
            sum=num1+num2;
            System.out.println("Your answer is : " + sum);
        }
        else if (s=='-'){
            sum=num1-num2;
            System.out.println("Your answer is : " + sum);
        }

        border();   
    }

    public static void border(){
        System.out.println("***** ***** ***** ***** ***** ***** ***** ***** ***** *****");
    }

}

Try this 尝试这个

import java.util.Scanner;

public class Calculator {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        long sum = 0;
        long num1 = 0;
        long num2 = 0;
        char s = ' ';
        String answer = "yes";

        while (true) {
            border();
            System.out.println("Acara's Calculator™ V_.01");

            System.out.println("What operation would you like to do?");
            System.out.println("Press '+' for addition, '-' for subtraction, '/' for division or '*' for multiplication and 'q' for quit.");
            s = in.next().charAt(0);
            if (s == 'q') {
                break;
            }

            border();
            System.out.println("What is your first number? ");
            num1 = in.nextInt();

            System.out.println("What is your second number? ");
            num2 = in.nextInt();

            if (s == '/') {
                sum = num1 / num2;
                System.out.println("Your answer is : " + sum);
            } else if (s == '*') {
                sum = num1 * num2;
                System.out.println("Your answer is : " + sum);
            } else if (s == '+') {
                sum = num1 + num2;
                System.out.println("Your answer is : " + sum);
            } else if (s == '-') {
                sum = num1 - num2;
                System.out.println("Your answer is : " + sum);
            }

            border();

        }
    }

    public static void border() {
        System.out.println("***** ***** ***** ***** ***** ***** ***** ***** ***** *****");
    }

}

Here is the kind of loop you needed. 这是您需要的那种循环。

import java.util.Scanner;

public class Calculator {

    public static void main(String [] args){

        Scanner in=new Scanner(System.in);

        long result = 0;
        long num1 = 0;
        long num2 = 0;
        char s=' ';
        String token = "";

        border();
        System.out.println("Acara's Calculator™ V_.01");
        border();

        while (true){
            System.out.println("What is your first number? ... Or press ! to quit.");
            token = in.next();
            if ("!".equalsIgnoreCase(token.trim())){
                break;
            }
            num1 = Integer.parseInt(token);

            System.out.println("What is your second number? ... Or press ! to quit.");
            token = in.next();
            if ("!".equalsIgnoreCase(token.trim())){
                break;
            }
            num2 = Integer.parseInt(token);

            System.out.println("What operation would you like to do?");
            System.out.println("Press '+' for addition, '-' for subtraction, '/' for division " + 
                    "or '*' for multiplication... Or press ! if you want to quit.");
            token = in.next();

            if ("!".equalsIgnoreCase(token.trim())){
                break;
            }
            s=token.trim().charAt(0);

            if (s=='/'){
                result=num1/num2;
                System.out.println("Your answer is : " + result);
            }
            else if (s=='*'){
                result=num1*num2;
                System.out.println("Your answer is : " + result);
            }
            else if (s=='+'){
                result=num1+num2;
                System.out.println("Your answer is : " + result);
            }
            else if (s=='-'){
                result=num1-num2;
                System.out.println("Your answer is : " + result);
            }

            border();
        }
    }

    public static void border() {
        System.out
        .println("***** ***** ***** ***** ***** ***** ***** ***** ***** *****");
    }

}

This is probably what you want - it encloses your code in a while loop, but does so without making one huge main() function: 这可能就是您想要的-它将代码封装在while循环中,但是这样做并没有产生一个巨大的 main()函数:

import java.util.Scanner;

public class Calculator {
    private static final Scanner in = new Scanner(System.in);

    public static void main(String [] args){
        singleLoop();
        while(shouldContinue()) {
            singleLoop();
        }
    }

    private static boolean shouldContinue() {
        System.out.println("Run again? (yes/no)");
        return (in.next().equalsIgnoreCase("yes"));
    }

    private static void singleLoop() {
        long sum = 0;
        long num1 = 0;
        long num2 = 0;
        char s=' ';
        String answer="yes";

        border();
        System.out.println("Acara's Calculator™ V_.01");

        border();
        System.out.println("What is your first number? ");
        num1=in.nextInt();

        System.out.println("What is your second number? ");
        num2=in.nextInt();

        System.out.println("What operation would you like to do?");
        System.out.println("Press '+' for addition, '-' for subtraction, '/' for division or '*' for multiplication.");
        s=in.next().charAt(0);

        if (s=='/'){
            sum=num1/num2;
            System.out.println("Your answer is : " + sum);
            }
        else if (s=='*'){
            sum=num1*num2;
            System.out.println("Your answer is : " + sum);
        }
        else if (s=='+'){
            sum=num1+num2;
            System.out.println("Your answer is : " + sum);
        }
        else if (s=='-'){
            sum=num1-num2;
            System.out.println("Your answer is : " + sum);
        }

        border();   
    }

    public static void border(){
        System.out.println("***** ***** ***** ***** ***** ***** ***** ***** ***** *****");
    }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM