重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
重复的反馈某一过程(操作)叫迭代,
成都创新互联是一家专注于成都网站制作、成都网站建设与策划设计,龙山网站建设哪家好?成都创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:龙山等地区。龙山做网站价格咨询:18980820575
在java中,就是循环重复的进行某一操作,比如一个程序要累加1到100的和,
那么只要定义一个变量sum,让它重复的进行累加操作:
int sum =0;
for( int i=1; i=100; i++ ){
sum = sum +i;
}
其中执行一次sum = sum + i ;就称之为一次迭代,每一次迭代得到的结果(sum + i 的和)会作为下一次迭代的初始值(结果赋值给sum变量后,这个变量又作下一次迭代的初始值);这就是迭代与普通循环的区别。
迭代是普通的循环。
例:求从1加到10
int sum=0
for(int i=0;i= 10;i++){
sum=sum+i;
}
递归是指一个函数直接或间接调用自己。
好比:从前有个庙庙里有个大和尚和小和尚,大和尚叫小和尚讲故事,小和尚说从前有个庙庙里有个大和尚和小和尚,小和尚叫大和尚讲故事,大和尚说从前....
递归的特点:
必有三个条件:
1. 间接或直接调用自己。
2. 一定要有退出的条件(比方说大和尚口干了不听故事了)。否则就是死循环
3。要有逻辑体(想要做的事);
public int sum(int x){
if(x=0){
return x;
}
return x+sum(x-1);
}
int s=10;
int total=sum(s);
该例中,sum函数总是调用自己,return x+sum(x-1);
sum有退出条件, x=0
最后的结果是把 10+9+8+7+... 1 返回
在很多种情况下,迭代和递归都可以完成相同的功能, 不过递归有些功能迭代就完成不了。 并且代码没有递归简洁,熟练使用递归后能提高代码质量。
java有个enum类型的,不过个人觉得用处不是很大,你就在里面声明几个可能会用到的东西..其实如果不用枚举也没什么大碍吧. 迭代很重要,Collection接口继承自iterable接口,iterable接口中定义了iterate(迭代)方法,所以一切实现Collection接口的类必须提供iterate方法。 迭代的概念也不是很难,就是说如果我一张链表里面存了100个元素,你可以用迭代器不断的区访问链表中的元素。 for example LinkedList list = new LinkedList //suppose we have added 100 elements for(Iterator itr = list.iterator;itr.hasNext();){ System.out.println(itr.next()); }
java.lang.StackOverflowError 是递归太深的意思 !通过报这个错是你的递归写错了!
就是这里
else{
return fun(x)+fun(x-1);
}
你fun(x)里面又调用 f(x)这样就会无限递归下去!自然报错
不知道你想要怎么的效果
照你的意思应该是 fab 数列 那应该是 return fun(x-1)+fun(x-2);
public static void main(String[] args) {
Test test = new Test();
test.addNum();
}
private int num = 0;
public void addNum() {
num++;
if(num==10){
System.exit(0);
}else{
System.out.println(num);
addNum();
}
} 一个 很简单的程序 ! 其实迭代很简单 就是 判断一些条件 然后 自己调用自身!就行了
1、迭代主要是对一些集合类如List、map等进行迭代
2、获取集合类对象,如List
dataList
3、获取dataList的迭代器
4、利用while循环迭代
示例:
List
dataList
=
new
ArrayList
dataList.add("北京");
dataList.add("天津");
//获取dataList的迭代器
Iterator
it
=
dataList.iterator();
while(it.hasNext()){
System.out.println(it.next());
}