实验三:分别用for,while和do-while循环语句以及递归方法计算n!,并输出算式

 package day01;

import java.util.Scanner;

public class 阶乘 {

public static void main(String[] args) {
Scanner shuru=new Scanner(System.in);
int n,i;
System.out.println("输入您要计算的n");//
n=shuru.nextInt();
System.out.println("选择你的计算方式!!输入 1为for输入2位while()输入3为递归 输入4为do while()");
i=shuru.nextInt();
switch(i) {
case 1: xunhuang(n); break;
case 2: While(n);break;

case 3: digui01(n);break;
case 4: DoWhile(n);break;
}

}
private static void DoWhile(int n) {
int i=1;
int sum=1;
do {
sum=sum*i;
System.out.print(i+"*");
i++;
}while(i<n);
sum=sum*n;
System.out.println(n+"="+sum);
}
private static void digui01(int n) {
int sum;
sum=digui(n);
System.out.println(sum);

}
private static void While(int n) {
int i=1,sum=1;
while(i<n)
{
sum=sum*i;
System.out.print(i+"*");
i++;
}
sum=sum*n;
System.out.print(n+"="+sum);
}

private static void xunhuang(int n) {
 int temp=1;
 int sum=1;
 for(int i=1;i<n;i++) {
 sum=sum*i;
 System.out.print(i+"*");
 }
 sum=sum*n;
System.out.print(n+"="+sum);
}
private static int digui(int n) {
if (n <= 0) {
        return 0;
    }
    if (n == 1) {
     System.out.print(n+"=");
        return 1;
    }
    System.out.print(n+"*");
    return n * digui(n-1);
}

}

实验结果:

 

 

 

实验心得:

  1. 一开始实验的时候,因为太久没编写程序,所以很多东西都忘了,都是看了书一步一步来的。

            虽然java是由c++c变换而来的,但输出的语句的写法还是不一样的,加上之前学c++

           c也不是很好,所以还是要看书一步一步来。

   2.便写程序的时候,我把用whiledo-while做的部分弄到了类jin外,导致了编程的出错。 

   3.使用变量名的时候,java没有全局变量有局部变量,我在变量名的作用域外使用了它,导致出错了。

          4.通过本次实验,我发现自己对编写程序越来越生疏了,以后还是要加紧练

posted @ 2019-03-24 11:13  搁浅12345  阅读(700)  评论(0编辑  收藏  举报