一道关于流程控制的JAVA题,请教大家谢谢了

importjava.util.Scanner;/***编写JAVA程序,实现接收用户输入的正整数,输出该数的阶乘要求:限制输入的数据在1-10之间,无效数据进行提示,结... import java.util.Scanner;

/**
* 编写JAVA程序,实现接收用户输入的正整数,输出该数的阶乘
要求:限制输入的数据在1-10之间,无效数据进行提示,结束程序
输出结果如:4!=1*2*3*4=24
*/
public class FactDemo {

/**
* @param args
*/
public static void main(String[] args) {
//定义变量接收用户输入,计算阶乘,累计表达式
int number,fact=1;
String msg="";
Scanner input=new Scanner(System.in);

//提醒输入
System.out.println("请输入一个10以内的正整数:");
number=input.nextInt();

//验证有效性
if(number>10 || number<1){
System.out.println("数据无效");
return;
}

System.out.print(number+"!=");

//计算阶乘
for(int i=1;i<number;i++){
msg+=i+"*";
fact*=i;
}

//组合结果,并显示
fact*=number;
msg+=number+"="+fact;
System.out.println(msg);
}

}

我是菜鸟,不懂这个代码的过程和原理,尤其是后面的,看了半天有点迷糊不清
求文字解析!!分没了请见谅,谢谢大家!
展开
 我来答
百度网友b4855c5
2011-11-25 · TA获得超过1071个赞
知道小有建树答主
回答量:823
采纳率:0%
帮助的人:951万
展开全部
public static void main(String[] args) {
int number,fact=1; //定义变量,number是用户的输入值,fact是结果值
String msg=""; //定义要显示的信息的变量
Scanner input=new Scanner(System.in); //等待并接收用户输入的语句

System.out.println("请输入一个10以内的正整数:"); //在屏幕上打印提示语句
number=input.nextInt(); //如果用户有输入,则把输入的值放入到number变量中

if(number>10 || number<1){ 如果用户的输入值不在1到10以内,则打印错误信息并退出程序
System.out.println("数据无效");
return;
}
//如果输入正确则继续执行
System.out.print(number+"!="); //屏幕打印出结果的前部分则,4!=

//计算阶乘
for(int i=1;i<number;i++){
msg+=i+"*";//提示信息的组合如,1*2*3*4
fact*=i; //结果值的计算
}

//组合结果,并显示
fact*=number; //最后一位的计算
msg+=number+"="+fact; //最后一位的信息组合
System.out.println(msg); //打印最后结果信息
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式