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

package shiyansan;
import java.util.Scanner;
public class jiecheng {
 public static void main(String[] args)
 {
  @SuppressWarnings("resource")
  Scanner m=new Scanner(System.in);
  System.out.println("输入整数n:");
  int n=m.nextInt();
  for(int i=n;i>0;i--)
  {
   if(i>1)
   System.out.print(i+"*");
   else
   System.out.print(i);
   }
  System.out.println("=");
  System.out.println("for循环:"+For(n));
  System.out.println("while循环:"+While(n));
  System.out.println("do-while循环:"+Dowhile(n));
  System.out.println("递归方法:"+Digui(n));
  }
 public static int For(int n)
 {
  if(n==0)
   return 1;
  int i;
  int k=1;
  for(i=1;i<=n;i++)
  {
   k=k*i;
  }
  return k;
 }
 public static int While(int n)
 {
  if(n==0)
   return 1;
  int i=1,k=1;
  while(i<=n)
  {
   k=k*i;
   i++;
  }
  return k;
 }
 public static int Dowhile(int n)
 {
  if(n==0)
   return 1;;
  int i=1,k=1;
  do
  {
   k=k*i;
   i++;
  }while(i<=n);
  return k;
 }
 public static int Digui(int n)
 {
  if(n==0)
   return 1;
  else
   return n*Digui(n-1);
 }
}
 

总结:

在编写程序时不知道怎样从键盘输入数据,通过上网查询 大概了解了一点,但还不是很清楚。

1.使用Scanner类
需要java.util包
构造Scanner类的对象,附属于标准输入流System.in,之后通过其中的方法获得输入。
常用的方法:nextLine();(字符串),nextInt();(整型数),nextDouble();(双精度型数)等等。
结束时使用close();方法关闭对象。
2.使用System.in.read();方法
需要java.io包。
System.in从标注输入获取数据,数据类型为InputStream。通过read();方法返回ASCII码,若返回值为-1,说明没有读取到任何字符结束工作。
使用时需要添加抛出声明或用try/catch包围。

int型数据求n!是有限的,超出范围后输出的数据是错误的。

posted @ 2019-03-19 20:26  这个包子有点可爱  阅读(526)  评论(1编辑  收藏  举报
Fork me on GitHub