关于使用java将一定范围内数字筛选输出的编程思想
2017-11-15 20:30
357 查看
曾经看过一篇文章,里面讲的是关于JAVA编程思想的问题,其中提到过的一句话让我印象深刻:一个主方法里除了实例化对象和调用方法之外的代码不会超过四行。
当然,这是一个比较夸张的比喻
,但在实际的编程中,如果能写一个工具类的话,是不会往主方法里放入太多的东西的,在这里将阐述的是我对于简单JAVA问题中筛选一定范围内某种数字的理解,在这里我以输出1000以内的完数(一个正整数恰好等于除它本身外的所有因子之和)进行举例。
首先,不管是筛选什么样的数字,应当将数字和范围规定分开来看,即构造一个工具类,其中含有一个成员方法去辨别数字,比如在完数输出这一题中,将判定某一个数是否为完数作为一个成员方法,而更换数字则放在主方法里,然后开始在工具类里创建方法判断单个数字是否符合条件,最后在主方法里规定范围,代码如下:
如果你愿意的话,你甚至可以将范围也做成一个方法放入工具类Tools里,由用户输入范围,范围的函数如下。
将这些复杂的算法放入工具类中,其目的在于防止主方法过于复杂,不易读懂。
以上便是我从简单筛选中做出的总结。
当然,这是一个比较夸张的比喻
,但在实际的编程中,如果能写一个工具类的话,是不会往主方法里放入太多的东西的,在这里将阐述的是我对于简单JAVA问题中筛选一定范围内某种数字的理解,在这里我以输出1000以内的完数(一个正整数恰好等于除它本身外的所有因子之和)进行举例。
首先,不管是筛选什么样的数字,应当将数字和范围规定分开来看,即构造一个工具类,其中含有一个成员方法去辨别数字,比如在完数输出这一题中,将判定某一个数是否为完数作为一个成员方法,而更换数字则放在主方法里,然后开始在工具类里创建方法判断单个数字是否符合条件,最后在主方法里规定范围,代码如下:
public class Tools { void judgePerfectNumber(int a){ //判断一个数字是否为完数 int sum = 0; //因子的和初始化 int [] arr=new int[100]; int s = 0; for(int i = 1;i<a;i++){ if(a%i==0){ arr[s]=i; s++; } }//得到这个数字的所有因子 for(int r=0;r<100;r++){ sum = sum+arr[r]; }//求出因子的和 if(sum == a){ System.out.print(a+"\t"); }//判断是否为完数 } } public class Main { public static void main(String[] args) { Tools per = new Tools(); System.out.println("1000以内所有的“完数”为:"); for(int i = 1;i<1000;i++){ per.judgePerfectNumber(i); } } }
如果你愿意的话,你甚至可以将范围也做成一个方法放入工具类Tools里,由用户输入范围,范围的函数如下。
void range(){ Scanner scan = new Scanner(System.in); int max = scan.nextInt();
int min = scan.nextInt(); //用户输入范围 for(int i = min;i<max;i++){ judgePerfectNumber(i); }//使用时请自行加入提示
将这些复杂的算法放入工具类中,其目的在于防止主方法过于复杂,不易读懂。
以上便是我从简单筛选中做出的总结。
相关文章推荐
- 关于Java、Python、Go编程思想的不同
- 关于一道J笔试或者机试题的Java实现:从键盘输入一串字符,翻转后输出(要求不使用string相关类即对象)
- 关于使用Java进行网络编程
- 【Java编程思想 - 练习】吸血鬼数字
- 关于《Java 编程思想》第四版第十五章“泛型”逆变例子的疑惑
- 编程:用java 语言实现,输入一个数,就相应地输出的几维数组!||用1、2、2、3、4、5这六个数字,用java写一个函数,打印出所有不同的排列,要求:"4"不能在第三位,"3"与"5"不能相连
- 关于if语句的使用简单举例,如果输入的数字不在有效范围内可继续输入 .cpp
- 19.JAVA编程思想——使用Maps
- 关于java编程思想的学习之方法重载
- Go学习笔记:关于Java、Python、Go编程思想的不同
- 工厂方法模板(java编程思想 使用匿名内部类)
- java编程思想中关于多态性的描述
- 83.JAVA编程思想——关于JAVA性能
- 移位运算符中关于java编程思想中关于后侧的5个低位的意思:
- 征求关于java编程思想的教学材料(教学设计文档、PPT等)
- Java(Android)编程思想笔记03:在Android开发中使用MVP模式
- java编程思想-关于final
- Java编程思想——吸血鬼数字问题
- Go学习笔记 - 关于Java、Python、Go编程思想的不同
- java关于ArrayList动态数组与静态数组Arrays-元素比较输出最大最小值的使用例子