首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阶乘计算器

阶乘计算器
EN

Stack Overflow用户
提问于 2021-12-13 14:34:33
回答 5查看 412关注 0票数 0

我如何使程序执行一个新的或重复的操作,或要求用户再次输入一个数字,并知道它的阶乘。

代码语言:javascript
复制
import java.util.Scanner;

public class Loops {

    public static void main(String[] args) 
    {
        Scanner input = new Scanner(System.in);

        int num, num2 = 1, x, i;

        System.out.println("-------------Factorial Calculator-------------");
        System.out.print("Enter a positive integer: ");
        num = input.nextInt();

        if (num > 0) {
            System.out.print(num + "! = ");
            for (i = 1; i <= num; i++) {
                if(i < num){
                    System.out.print(i + " x ");
                    num2 = num2 * i;
                }
                if(i == num){
                    System.out.print(i);
                    num2 = num2 * i;
                    System.out.println("\nThe factorial of " + num + " is " + num2);
                    System.out.println();
                }
            }
        }else if (num < 0) {
            System.out.println("Please input a valid integer. Program stopped.");
        }
    }
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-12-13 14:47:39

将计算阶乘的代码放在单独的方法中,并从main()中的循环中调用它。

代码语言:javascript
复制
import java.util.Scanner;

public class Loops {

    public static void printFactorial(int num) {
        int i = 0;
        int num2 = 0;
        if (num > 0) {
            System.out.print(num + "! = ");
            for (i = 1; i <= num; i++) {
                if(i < num){
                    System.out.print(i + " x ");
                    num2 = num2 * i;
                }
                if(i == num){
                    System.out.print(i);
                    num2 = num2 * i;
                    System.out.println("\nThe factorial of " + num + " is " + num2);
                    System.out.println();
                }
            }
        }else if (num < 0) {
            System.out.println("Please input a valid integer. Program stopped.");
            System.exit(0);
        }

    }
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        int num = 0;
        System.out.println("-------------Factorial Calculator-------------");
        while ( true ) {
            System.out.print("Enter a positive integer: ");
            num = input.nextInt();
            printFactorial(num);
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2021-12-13 14:39:24

使用while循环

代码语言:javascript
复制
import java.util.Scanner;

public class Loops {
    static boolean readInput = true;
    public static void main(String[] args) {
        while(readInput) calculateFactorial();
    }
}

private static void calculateFactorial() {
    Scanner input = new Scanner(System.in);

    int num, num2 = 1, x, i;

    System.out.println("-------------Factorial Calculator-------------");
    System.out.print("Enter a positive integer: ");
    num = input.nextInt();
    if(num <= 0) {
        readInput = false;
        return;
    }

    if (num > 0) {
        System.out.print(num + "! = ");
        for (i = 1; i <= num; i++) {
            if(i < num){
                System.out.print(i + " x ");
                num2 = num2 * i;
            }
            if(i == num){
                System.out.print(i);
                num2 = num2 * i;
                System.out.println("\nThe factorial of " + num + " is " + num2);
                System.out.println();
            }
        }
    }else if (num < 0) {
        System.out.println("Please input a valid integer. Program stopped.");
    }
}
票数 1
EN

Stack Overflow用户

发布于 2021-12-13 14:39:04

当用户不键入位置号时,请使用when循环:

代码语言:javascript
复制
System.out.print("Enter a positive integer: ");
num = input.nextInt();
while(num<0) {
    System.out.println("Please input a valid integer. Program stopped.");
    num = input.nextInt();
}

代码:

代码语言:javascript
复制
    import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        int num, num2 = 1, x, i;

        System.out.println("-------------Factorial Calculator-------------");
        System.out.print("Enter a positive integer: ");
        num = input.nextInt();
        input.nextLine();
        while (num < 0) {
            System.out.println("Please input a valid integer. Program stopped.");
            System.out.print("Enter a positive integer: ");
            num = input.nextInt();
        }
        if (num > 0) {
            System.out.print(num + "! = ");
            for (i = 1; i <= num; i++) {
                if (i < num) {
                    System.out.print(i + " x ");
                    num2 = num2 * i;
                }
                if (i == num) {
                    System.out.print(i);
                    num2 = num2 * i;
                    System.out.println("\nThe factorial of " + num + " is " + num2);
                    System.out.println();
                }
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70336308

复制
相关文章

相似问题

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