java for循环的解释
第一个是计算阶乘的:
long limit=20;
long factoritl =1;
for(int i=1; i<=limit; i++){
factoritl = 1;
for(int factor=2; factor<=i; factor++){
factoritl *= factor;
System.out.println(i+ "i=is" +factoritl);
}
}
}
}
程序写得不是很好,但打印还是对的。
第二个是计算值数的:
int nValues=50;
OuterLoop:
for(int i=2;i<nValues;i++){
for(int j=2;j<i;j++){
if(i%j==0)
continue OuterLoop;
}
System.out.println(i);
}
}
}
1.解释这些程序的思路,运行的方式是怎样的?就是说工作流程。
2.解释i<=limit和j<=i; 是什么原理?类似i 或者j 或者什么的 <= XXX。
3.i 或者 j<=i 和 j<i 好象运行的结果不同哦,区别在与什么?为什么。
总之for和for嵌套的原理。
我是自学的,理解得不是很透彻。 展开
循环的意思就是让程序重复地执行某些语句。在程序设计时,常常需要处理大量的重复动作,采用循环结构可以降低程序书写的长度和复杂度,可使复杂问题简单化,提高程序的可读性和执行速度。其中,for循环就是循环结构的一种,另外还有while循环和do-while循环语句。但是for循环是开发者明确知道了循环次数。
For循环格式如下:
for(赋初值;判断条件;赋值加减){
执行语句
}
若是在循环主体中要处理的语句只有一个,可以将大括号省去。下面列出for循环的流程:
(1)第一次进入for循环是,要为循环控制变量赋初值。
(2)根据判断条件内容检查是否要继续执行循环,当判断条件为真(true)时,继续执行循环主体内的语句;判断条件为假(false)时,则会跳出循环,执行其它语句。
执行完循环主体内的语句后,循环控制变量会根据增减量的要求更改循环控制变量的值,然后再回到步骤(2)重新判断是否继续执行循环。更具上面可以画出下面的流程图。
下面是成功例子
先说第一个,程序流程大概是这样的,先定义两个long型变量limit,factoritl,并附了初值,然后执行for循环,把程序的格式写清楚一点,可以很明了的看懂:
for(int i=1; i<=limit; i++){
factoritl = 1;
for(int factor=2; factor<=i; factor++){
factoritl *= factor;
System.out.println(i+ "i=is" +factoritl);
}
}
外层for,先定义一个变量i并附初值1,然后检查i是否小于等于limit,成立则进入循环体,执行factoritl=1;然后执行下一个for循环,先给factor附初值2,然后检查factor是否小于等于i,若成立,则进入内层for,执行factoritl *= factor; 并且打印,for内部程序执行完成之后,执行factor++,然后再检查factor<=i是否成立,若成立,继续执行for内部程序,若不成立,则退出for循环体,继续执行下一行代码,在这个例子中,推出内部for后即继续执行外部循环的比较操作,然后再执行内部for,如此循环,直至程序完全退出。
另外,关于i<=limit的问题,此即i小于或等于limit,不知道你的具体问题是什么,这个式子很好理解啊,比如,i=1,limit=2,则i<=limit成立,又如,i=3,limit=3,则i<=limit依然成立,而如果i=3,limit=2,则不成立。
i<j与i<=j只有一点不同,即i=j时,前者不成立,而后者成立,所以你将for循环的判断条件改成i<j之后,就少执行一次循环,当然执行结果不一样。
不知道说了这么多,你有没有听懂,也不太好解释,实在不理解发Email,我再给你解释:michaelpan129@163.com,michaelpan0129@gmail.com
楼上做广告的吧……
java for循环就是,对于某些操作,人为地控制循环次数。最简单的,比如打印数字。
举例:打印 0 ~ 100
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
在JDK1.5及其往后,java多了一种新的循环方式,即增强型for,可以很方便地进行数组和集合的遍历。
举例: 遍历数组
int[] a = new int[]{1,2,3,4,5,6,7,8,9,10,11,12};
for(int iloop : a){
System.out.println(iloop);
}
其他例子: 遍历集合
/* 建立一个Collection */
String[] strings = {"A","B","C","D"};
Collection stringList = java.util.Arrays.asList(strings);
/* 开始遍历 */
for (Iterator itr = stringList.iterator(); itr.hasNext();) {
Object str = itr.next();
System.out.println(str);
}
java中循环有while(条件){ }、for( ; ;)、和do{ }while(条件);
while循环,先判断条件是否成立,成立的情况下,执行循环体中的内容,不满足则不执行
for循环,这个和while循环一样,先判断后执行。例如:for(int i=0;i<10;i++),首先会执行int i=0,此时i=0,再进行条件判断,i<10吗?此时0<10,所以条件满足,执行循环体中的内容,循环体的内容执行完后再执行i++,这里涉及到一个++i和i++的区别了。一直执行,直到不满足i<10这个条件后退出循环,当i<10始终成立的时候,这个循环就是无限循环了。
do while循环,这个是先执行后判断,第一次循环的时候不管条件是否满足,都得进入循环体一次,循环体执行完之后再进行条件判断,条件成立则继续执行循环体中内容,不成立则退出循环,还有一点容易忘记的就是while(条件); ,这个后面有一个分号
long factoritl =1;// 定义并赋值factoritl
for(int i=1; i<=limit; i++){ // 定义并赋值循环变量i为1 当i<20时做以下操作
factoritl = 1;
for(int factor=2; factor<=i; factor++){ // 定义并赋值循环变量factor为1 当factor<i当前的值时做以下操作
factoritl *= factor;
System.out.println(i+ "i=is" +factoritl);
}
}
}
}
其实你可以把具体的值放进去看看运行结果是多少 放上两三个 你就明白了
i<limit limint是常量,i是外层循环变量 它必须给定一个常量作为循环次数的范围 而j<=i j是内层的循环变量 它的循环次数是根据当前i的值做依据确定循环次数的 这这里可以理解成当前的i就是个常量
j<=i 跟 j<i 表达的意思有什么不一样呢 就是说前一个j比后一个j在取值上多取了一个数 当然做内循环的时候就多循环了一次
你这就不是理解的不是很透彻 你这是根本没理解
第二个是用了个判断 中间加了个continue
你本书吧它的用法和含义看看 就 清楚啦
你还是先把第一个理解了 再看第二个吧