java基础学习者的自我思考
2018-03-08 13:34
302 查看
从用java写一道题(从1-33随机生成7个不同的数字)引来的思考。
利用for循环生成7个随机数,同时还要检测刚分配的随机数是否与已分配好的随机数有重复(重点是这一步)
如何检测?
原本思考:假设分配的数是X,把X与它前面的数比较,遇到相同的重新分配。后续没有进行思考。代码逻辑重复次数相对较多。如下:for(int m=0;m<k;m++) {
if(x[m]==x[k]) {
k--;
break;
}
下面的代码 (请教别人更改过的)思考:假设分配的数是x,把X与他前面的数对比,遇见重复的数字时重新分配X,直至X 与这个数不相同时,接着分配下一个数。public class Test{
public static void main(String[] args){
int[] y=new int[7];
for(int i=0;i<y.length;i++){
y[i]=(int)(Math.random()*33+1);
for(int m=0;m<i;m++){
while(y[m]==y[i]){
y[i]=(int)(Math.random()*33+1);
}
}
}
for(int j=0;j<y.length;j++){
System.out.println(y[j]+" ");
}
}
}
结论是,思考问题要思考到底,认真细致 。
利用for循环生成7个随机数,同时还要检测刚分配的随机数是否与已分配好的随机数有重复(重点是这一步)
如何检测?
原本思考:假设分配的数是X,把X与它前面的数比较,遇到相同的重新分配。后续没有进行思考。代码逻辑重复次数相对较多。如下:for(int m=0;m<k;m++) {
if(x[m]==x[k]) {
k--;
break;
}
}
下面的代码 (请教别人更改过的)思考:假设分配的数是x,把X与他前面的数对比,遇见重复的数字时重新分配X,直至X 与这个数不相同时,接着分配下一个数。public class Test{
public static void main(String[] args){
int[] y=new int[7];
for(int i=0;i<y.length;i++){
y[i]=(int)(Math.random()*33+1);
for(int m=0;m<i;m++){
while(y[m]==y[i]){
y[i]=(int)(Math.random()*33+1);
}
}
}
for(int j=0;j<y.length;j++){
System.out.println(y[j]+" ");
}
}
}
结论是,思考问题要思考到底,认真细致 。
相关文章推荐
- Java基础之关于几种单例实现的思考
- 自我JAVA零基础学习方法总结,值得推荐
- 【java基础 5】树形结构数据加载的思考
- java基础 堆、栈 自我理解
- Java基础-面向对象思考
- day1--Java基础语法--Java语言基础--思考案例
- Java基础:一个关于java数组的深度思考
- Java基础知识强化之网络编程笔记14:TCP之多个客户端上传到一个服务器的思考(多线程改进)
- Java基础+思考
- 【java基础 5】树形结构数据加载的思考
- [转]Java基础:一个关于java数组的深度思考
- Java基础之工厂模式的思考
- Java基础的自我总结(一)
- java基础——关于异步任务串行执行的思考与实现
- Java基础知识——思考Map两种遍历的区别 && Compatable和Comparator区别
- 2018/01/08JAVA 基础 / 接口与继承/Object类——[思考?question:Object类的方法有什么用?为什么不直接在类中设计方法?
- 基础入门:关于java数组的深度思考
- 基础入门:关于java数组的深度思考
- java基础题--自我准备
- 【Java基础】关于final修饰符的一点思考