黑马程序员技术交流社区

标题: 代码老是写得太繁琐,求大神们教导下 [打印本页]

作者: 月影千华    时间: 2015-9-12 13:40
标题: 代码老是写得太繁琐,求大神们教导下
本帖最后由 月影千华 于 2015-9-12 13:43 编辑

我想写程序的时候把程序写得简单易懂一些,但是老是事与愿违,老是写的特别长特别乱,请大神们教导下,怎么才能写出简洁的代码呀……我是新入学的,学了三天了。目前学习内容只到switch讲完,Scanner是老师额外讲的。下面我做了三个题,大神们帮我看下看看可以改短一些吗,谢谢。
  1. /*
  2. 有一对兔子出生,从第三月起,每个月生一对兔子,出生的兔子也是第三月起每个月生一对兔子,
  3. 输入一个月数,打印出该月数的兔子对数。
  4. 思路:兔子的对数是 1,1,2,3,5,8,13,21……从第三个月开始,每个月的兔子对数是前两个月的兔子对数之和。
  5. */
  6. import java.util.Scanner;
  7. class  TuziDemo
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 Scanner sc=new Scanner(System.in);
  12.                 System.out.println("请输入月数:");
  13.                 int x;
  14.                 long m1,m2;
  15.                 m1=m2=1L;
  16.                 x=sc.nextInt();
  17.                 if (x>0)
  18.                 {
  19.                         for (int m=3;m<=x ;m++ )
  20.                         {
  21.                                 if(x==1 || x==2)
  22.                                 {
  23.                                         m1=m2=1L;
  24.                                 }
  25.                                 else
  26.                                 {
  27.                                         m2=m2+m1;
  28.                                         m1=m2-m1;
  29.                                 }
  30.                         }
  31.                         System.out.println("第"+x+"个月兔子的对数是:"+m2);
  32.                 }
  33.                 else
  34.                 {
  35.                         System.out.println("您输入的月数有误!");
  36.                 }
  37.         }
  38. }
复制代码

  1. /*
  2. 将一个整数分解质因数。
  3. 思路:
  4. A:定义变量,x,n代表要被分解的整数,y代表质因数,如果x能被当前的y整除,就把x/y的值再赋值给x,继续进行除法,一直到除不尽为止。
  5. B:flag为真时是合数,flag为假是是质数。质数的质因数就是1乘以它自身。
  6. */
  7. class  FenjieDemo
  8. {
  9.         public static void main(String[] args)
  10.         {
  11.                 int x,n;
  12.                 boolean flag=false;
  13.                 x=n=78;                    //因为x的值在后面的循环中一直在变,我就定义了一个n让他和x的初始值相同,用以代替x
  14.                 System.out.print("\n"+x+" = ");
  15.                 for (int y=2;2*y<=n ;y++ )
  16.                 {
  17.                         while (x%y==0)      //可以除尽的结果 一直循环到除不尽为止
  18.                         {
  19.                                 System.out.print(y+" x ");
  20.                                 x=x/y;
  21.                                 flag=true;
  22.                         }
  23.                 }
  24.                 if (flag)
  25.                 {
  26.                         System.out.print("\b\b"+"        "+"\n");
  27.                 }
  28.                 else
  29.                 {
  30.                         System.out.println("1"+" x "+x);
  31.                 }
  32.         }
  33. }
复制代码
  1. /*
  2. 从键盘输入一个正整数,将其分解质因数。
  3. 思路:
  4. A:定义变量,x,n代表要被分解的整数,y代表质因数,如果x能被当前的y整除,就把x/y的值再赋值给x,继续进行除法,一直到除不尽为止。
  5. B:flag为真时是合数,flag为假是是质数。质数的质因数就是1乘以它自身。
  6. */
  7. import java.util.Scanner;
  8. class  FenjieDemo1
  9. {
  10.         public static void main(String[] args)
  11.         {
  12.                 Scanner sc=new Scanner(System.in);
  13.                 int x,n;
  14.                 boolean flag=false;
  15.                 System.out.println("请输入一个正整数:");
  16.                 x=n=sc.nextInt();
  17.                 if (x<=0)
  18.                 {
  19.                         System.out.println("输入有误!");
  20.                 }
  21.                 else
  22.                 {
  23.                         System.out.print("\n"+x+" = ");
  24.                         for (int y=2;2*y<=n ;y++ )
  25.                         {
  26.                                 while (x%y==0)
  27.                                 {
  28.                                         System.out.print(y+" * ");
  29.                                         x=x/y;
  30.                                         flag=true;
  31.                                 }
  32.                         }
  33.                         if (flag)
  34.                         {
  35.                                 System.out.print("\b\b"+"        "+"\n");
  36.                         }
  37.                         else
  38.                         {
  39.                                 System.out.println("1"+" x "+x);
  40.                         }
  41.                 }
  42.         }
  43. }
复制代码






作者: 月影千华    时间: 2015-9-12 14:07
求大神指导呀……
作者: 渭水的一只    时间: 2015-9-12 18:38
三天代码都写的这么熟练了  惭愧
作者: ln0491    时间: 2015-9-12 18:44
学习了。。。。。。。。。
作者: 往事如风555    时间: 2015-9-12 19:14
高,才三天就这么厉害了。
作者: Tangjw    时间: 2015-9-12 21:15
建议按照标准格式写java代码,你的是c语言格式
作者: kingxiao    时间: 2015-9-12 21:24
惭愧呀
作者: 月影千华    时间: 2015-9-12 21:59
渭水的一只 发表于 2015-9-12 18:38
三天代码都写的这么熟练了  惭愧

没有呀,一题都要写好久。
作者: 月影千华    时间: 2015-9-12 22:01
往事如风555 发表于 2015-9-12 19:14
高,才三天就这么厉害了。

一题都要写好久。。。
作者: Vincent饭饭    时间: 2015-9-12 22:02
惭愧惭愧
作者: 月影千华    时间: 2015-9-12 22:02
Tangjw 发表于 2015-9-12 21:15
建议按照标准格式写java代码,你的是c语言格式

……不是吧,我都是对齐的呀。我不知道C语言格式,这样写是因为只学了if 和 for 就只能一直嵌套。
作者: yonghong_cui    时间: 2015-9-12 22:16
路过, 俺是打酱油的
作者: 小二儿    时间: 2015-9-12 22:22
惭愧惭愧。。。加油!三天真的挺不错的
作者: 双元黑马12    时间: 2015-9-12 22:50
就是呀 程序员就是撸代码到吐血
作者: gannenggufen    时间: 2015-9-12 23:11
好惭愧喔。
作者: 迷茫不堪的年纪    时间: 2015-9-12 23:58
亲,其实这样挺好的!给新手谢谢,步骤详细 , 哈哈
作者: zx0210    时间: 2015-9-13 00:15
现在就这么写着,等你以后使用了Eclipse之后会自动帮你转变成标准格式的!
作者: wanglianqing    时间: 2015-9-13 00:58
才三天都这么厉害了~~自愧不如啊




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