乘法教程Java程序

问题描述 投票:0回答:1

我正在编写一个遵循这些说明的程序:

你的小妹妹要求你帮助她进行繁殖,你决定编写一个测试她技能的Java程序。该程序将让她输入一个起始编号,例如5.它将产生十个乘法问题,范围从5×1到5×10。对于每个问题,她将被提示输入正确答案。该程序应检查她的答案,不应让她前进到下一个问题,直到对当前问题给出正确答案。

在测试了十个乘法问题后,您的程序应该询问她是否想尝试另一个起始号码。如果是,您的程序应该生成另外十个相应的乘法问题。此程序应重复,直到她指出否。

我有正确的代码要求乘法部分,但我不知道如何让程序询问用户是否想要继续。

以下代码使程序运行一次:

    package hw5;
    import java.util.Scanner;
    public class HW5 {
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            System.out.print("Enter number you would like to attempt: ");
            int start = input.nextInt();
            int mult;
            for (mult = 1; mult <= 10; mult++) {
                int num = start * mult;
                System.out.print(start + " x " + mult + " = ");
                int ans = input.nextInt();
                while (ans != num) {
                    System.out.print("Wrong answer, try again: ");
                    int ans2 = input.nextInt();
                    if (ans2 == num) {
                        break;
                    } 
                }

                //System.out.print("Would you like to do another problem? ");   

            }
        }
    }

当我取消注释第21行时,程序返回:

输入您想要尝试的号码:1

1 x 1 = 1

你想再做一个问题吗? 1 x 2 = 2

你想再做一个问题吗? 1 x 3 =

等等...

如果我从第21行获取代码并将其放在for循环之外,程序将运行for循环一次,然后直接跳转到问题。

我该如何解决此问题并成功完成说明?

java loops for-loop nested-loops multiplication
1个回答
1
投票

这是我如何做到的:

    package hw5;
    import java.util.Scanner;
    public class HW5 {
    public static void main(String[] args) 
    {
        boolean wantsToContinue = true;
        while(wantsToContinue)
        {
            wantsToContinue = mathProblem();
        }
    }

    public static boolean mathProblem()
    {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter number you would like to attempt: ");
        int start = input.nextInt();
        int mult;
        for (mult = 1; mult <= 10; mult++) {
            int num = start * mult;
            System.out.print(start + " x " + mult + " = ");
            int ans = input.nextInt();
            while (ans != num) {
                System.out.print("Wrong answer, try again: ");
                int ans2 = input.nextInt();
                if (ans2 == num) {
                    break;
                } 
            }

            //System.out.print("Would you like to do another problem? ");   

        }

        boolean wantsToContinue;
        //Ask if the user would like to do another problem here, set "wantsToContinue" accordingly
        return wantsToContinue;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.