黑马程序员技术交流社区
标题:
关于 如何循环从键盘接收特定数据的思考
[打印本页]
作者:
0_TNT_0
时间:
2014-12-14 22:29
标题:
关于 如何循环从键盘接收特定数据的思考
本帖最后由 0_TNT_0 于 2014-12-14 22:33 编辑
本人Java新手一枚,看毕老师的视频到面向对象,最近写代码中经常遇到从键盘中接收一个整数(正整数、负整数)、浮点型数据、字符型数据、或者字符串数据。
下面是我写的从键盘接收一个正整数的代码。 我自己发现有一个问题解决不了,就是每接收一个数字,cmd就会退出, 想要实现循环输入功能:
在输入一个数据后,主函数调用该函数之后,还能够不退出cmd,还能继续从键盘中读取数字在进行判断。
现在有个基本思路是用循环和异常抛出,但是学艺不精,最终代码没能实现。欢迎大神指点。。。。。
/*
题目:
编写一个函数,输入n为偶数时,
调用函数求1/2+1/4+...+1/n,
当输入n为奇数时,
调用函数1/1+1/3+...+1/n。
将输出结果保留到至少8个小数点。
*/
import java.util.Scanner;
public class ZhengShuDaoShuHe
{
public static void main(String[] args)
{
int num = getout();
if (num%2==1)
{
System.out.print("从1到"+num+"的之间的奇数的倒数和为"+jiShu (num));
}else if(num%2==0)
{
System.out.print("从2到"+num+"的之间的偶数的倒数和为"+ouShu (num));
}else
{
System.out.println("输入错误,程序结束。");
}
}
//计算从1到num之间的奇数倒数和
static double jiShu (int num)
{
double daoShuHe=0;
for (double i=1;i<=num;i++)
{
if (i%2==1)
{
daoShuHe += 1/i;
}
}
return daoShuHe;
}
//计算从2到num之间的偶数倒数和
static double ouShu (int num)
{
double daoShuHe=0;
for (double i=1;i<=num;i++)
{
if (i%2==0)
{
daoShuHe += 1/i;
}
}
return daoShuHe;
}
//从键盘得到一个正整数。
static int getout()
{
int num =0;
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个正整数:");
num = sc.nextInt();
if (num>0)
{
return num;
}else
{
System.out.println("输入错误,程序结束,请重新开始");
}return -1;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2