黑马程序员技术交流社区

标题: 关于 如何循环从键盘接收特定数据的思考 [打印本页]

作者: 0_TNT_0    时间: 2014-12-14 22:29
标题: 关于 如何循环从键盘接收特定数据的思考
本帖最后由 0_TNT_0 于 2014-12-14 22:33 编辑

本人Java新手一枚,看毕老师的视频到面向对象,最近写代码中经常遇到从键盘中接收一个整数(正整数、负整数)、浮点型数据、字符型数据、或者字符串数据。
下面是我写的从键盘接收一个正整数的代码。      我自己发现有一个问题解决不了,就是每接收一个数字,cmd就会退出,      想要实现循环输入功能:
             在输入一个数据后,主函数调用该函数之后,还能够不退出cmd,还能继续从键盘中读取数字在进行判断。
     现在有个基本思路是用循环和异常抛出,但是学艺不精,最终代码没能实现。欢迎大神指点。。。。。
  1. /*
  2.         题目:
  3.                 编写一个函数,输入n为偶数时,
  4.                 调用函数求1/2+1/4+...+1/n,
  5.                 当输入n为奇数时,
  6.                 调用函数1/1+1/3+...+1/n。
  7.                 将输出结果保留到至少8个小数点。
  8. */

  9. import java.util.Scanner;
  10. public class ZhengShuDaoShuHe
  11. {
  12.         public static void main(String[] args)
  13.         {
  14.                 int num = getout();
  15.                 if (num%2==1)
  16.                         {
  17.                                 System.out.print("从1到"+num+"的之间的奇数的倒数和为"+jiShu (num));       
  18.                         }else if(num%2==0)
  19.                         {
  20.                                 System.out.print("从2到"+num+"的之间的偶数的倒数和为"+ouShu (num));               
  21.                         }else
  22.                         {
  23.                                 System.out.println("输入错误,程序结束。");
  24.                         }
  25.     }
  26.         //计算从1到num之间的奇数倒数和
  27.         static double jiShu (int num)
  28.         {
  29.                 double daoShuHe=0;
  30.                 for (double i=1;i<=num;i++)
  31.                 {       
  32.                         if (i%2==1)
  33.                         {
  34.                                 daoShuHe += 1/i;
  35.                                
  36.                         }
  37.                 }
  38.                 return daoShuHe;
  39.         }
  40.         //计算从2到num之间的偶数倒数和
  41.         static double ouShu (int num)
  42.         {
  43.                 double daoShuHe=0;
  44.                 for (double i=1;i<=num;i++)
  45.                 {
  46.                         if (i%2==0)
  47.                         {
  48.                                 daoShuHe += 1/i;
  49.                                
  50.                         }
  51.                 }
  52.                 return daoShuHe;
  53.         }

  54. //从键盘得到一个正整数。

  55.         static int getout()
  56.         {
  57.                 int num =0;
  58.                 Scanner sc = new Scanner(System.in);
  59.                 System.out.println("请输入一个正整数:");
  60.                 num = sc.nextInt();
  61.                 if (num>0)
  62.                 {
  63.                         return num;
  64.                 }else
  65.                 {
  66.                         System.out.println("输入错误,程序结束,请重新开始");
  67.                 }return -1;
  68.                
  69.         }
  70. }
复制代码













欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2