实验三:分别用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);
}
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);
}
}
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包围。
需要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!是有限的,超出范围后输出的数据是错误的。