JAVA用while循环输入一个正整数输出阶乘
时间: 2024-01-21 16:03:12 浏览: 75
以下是Java代码示例:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int n = scanner.nextInt();
int factorial = 1;
int i = 1;
while (i <= n) {
factorial *= i;
i++;
}
System.out.println(n + "的阶乘为:" + factorial);
}
}
```
运行结果:
```
请输入一个正整数:5
5的阶乘为:120
```
相关问题
JAVA用while循环输入一个正整数到一输出阶乘
以下是JAVA代码:
```
import java.util.Scanner;
public class Factorial {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正整数:");
int n = scanner.nextInt();
int result = 1;
int i = 1;
while (i <= n) {
result *= i;
i++;
}
System.out.println(n + "的阶乘是:" + result);
}
}
```
解释:
1. 首先使用Scanner类获取用户输入的正整数n。
2. 定义一个变量result,并将其初始化为1,用于存储阶乘的结果。
3. 使用while循环,从1到n依次遍历每个数,并将其乘到result中。
4. 循环结束后,输出n的阶乘结果。
编程实现如下功能: (1)定义函数factorial()实现求一个正整数的阶乘值; (2)定义函数check_data()实现判断一个数是否为正整数; 要求在调用求阶乘函数factorial()前先调用函数check_data(),确定为正整数才求该数的阶乘值并输出,否者要求用户重新输入,直到满足要求为止。
以下是Java代码实现:
```java
import java.util.Scanner;
public class Factorial {
public static int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
public static boolean checkData(int n) {
if (n > 0) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
while (true) {
System.out.print("请输入一个正整数:");
try {
n = sc.nextInt();
if (checkData(n)) {
System.out.println(n + "的阶乘是" + factorial(n));
break;
} else {
System.out.println("输入的数不是正整数,请重新输入!");
}
} catch (Exception e) {
System.out.println("输入的不是整数,请重新输入!");
sc.nextLine();
}
}
sc.close();
}
}
```
首先定义了一个`factorial()`函数,用于求一个正整数的阶乘值。
然后定义了一个`checkData()`函数,用于判断一个数是否为正整数。
在主程序中,通过一个无限循环,不断要求用户输入一个数,然后调用函数`checkData()`判断是否为正整数,如果是,则调用函数`factorial()`求该数的阶乘值并输出,然后跳出循环;否则提示用户重新输入。注意,为了避免用户输入非整数的情况,需要在输入部分加上一个`try-catch`语句块,如果输入的不是整数,则提示用户重新输入。最后记得关闭`Scanner`对象。
阅读全文