一、上回分解
// 求数的阶乘,从键盘中输入该数
// 求n的阶乘(factorial):n*n-1*n-2*……*3*2*1(乘以自身递减直至1),表示为!n
Scanner sc = new Scanner(System.in);
System.out.println("请输入整数x(x>1):");
int x = sc.nextInt();
int temp = x;
int fac = 1;
while(x != 1){
fac *= x--; // fac = fac * x--
}
System.out.println("!" + temp + "= " + fac);
运行:(可用计算器对比结果,亲测正确)
二、for循环
// for 循环
for(int i=0; i<5; i++){
System.out.println("for循环 i = " + i);
}
// 1、已知循环次数
// 2、先初始化i = 0
// 3、判断i<5,满足条件,执行循环体中内容,并且i++;不满足条件,退出循环
// ① int i = 0; // 初始化
// ② i<5; // 条件判断
// ③ System.out.println("i = " + i); // 满足条件,执行循环体中内容
// ④ i++; // 满足条件,自增
// ⑤ ②-④循环 // 继续下一循环
运行:
三、for VS while
// for已知循环次数,代码简洁(上面3行),while (5行)
// 视具体情况选用循环
int j = 0;
while(j<5){
System.out.println("while循环 j = " + j);
j++;
}
运行:
四、不满足条件
int x = 0;
for(x=0; x<0; x++){
System.out.println("for循环 x = " + x); // 不满足条件,不输出
}
System.out.println(x); // 不进行自增
运行:
五、进阶
// 某乞丐每天收入为 1 2 4 8…… ,10天后合计收入为多少?
// 已知循环条件,用什么循环?
// 先用计算器操作一波,发现规律没?
// 1 2 4 8 16 32 64 128 256 512 = 1023
// 2^0 2^1 2^2 2^3 2^4 2^5 2^6 2^7 2^8 2^9
// 答案下回分解