本帖最后由 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;
-
- }
- }
复制代码
|
|