java for语句

public class H {

public static void main(String[] args) {
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);
}
}

}
答案是2 3 5 7 11 。。。,代码看的不是特别懂,为什么答案里没有4 6 8 9 。。
想让出现4 6 8……把你的内层循环去掉就可以了!至于为什么 楼上的说的很对啊!
public class H {

public static void main(String[] args) {
int n=50;

for(int i=2; i<=n; i++){
System.out.println(i);
}
}

}
if(i%j==0){
continue OuterLoop;
}
这段代码把偶数的给去掉了,%是取模 也就是说是取的余数
那当余数为0的时候 continue 了
continue是不向循环的下面执行了,直接执行循环体的下次循环,
偶数的时候都给continue了,当然就没有 偶数了
首先是说说行标.行标就是这一行的标识号.JAVA里面没有Goto语句,而行标就是配合Continue和break语句使用的.通常是用于多个循环嵌套时,指定从内循环跳转到哪个外循环.
这个例子里面,分别对应的是:
i j
2 2 j<>
3 2 i%j==0条件不满足,不跳转,退出内循环后,执行输出i,并进入下一轮i的循环
4 2 i%j==0条件满足,跳转到外循环,i++
5 2 i%j==0条件不满足,不跳转,输出i,进入下一轮i的循环.
6 2 i%j==0条件满足,跳转到外循环.i++
........等等
你debug一下跟着走就知道了:
首先最外层i的循环
1. i=2 内层j的循环条件不符合不执行,执行输出 结果:2
2. i=3 内层j循环1次由于i%j不是0,所以j循环结束 执行输出 结果:2 3
3. i=4 内层j循环2次由于4%2是0,所以执行 continue OuterLoop;
跳出内层循环和外层的本次循环,即本次循环结束,并继续外层的下次循环。
4. i=5 内层j循环3次由于5%2、5%3、5%4都不是0所以5被输出 结果:2 3 5
...
这样推下去就知道本程序的目的是:
输出50以内的质数。
for语句是循环的一种形式。

For循环格式如下:
for(赋初值;判断条件;赋值加减){
执行语句
}
若是在循环主体中要处理的语句只有一个,可以将大括号省去。下面列出for循环的流程:
(1)第一次进入for循环是,要为循环控制变量赋初值。
(2)根据判断条件内容检查是否要继续执行循环,当判断条件为真(true)时,继续执行循环主体内的语句;判断条件为假(false)时,则会跳出循环,执行其它语句。
执行完循环主体内的语句后,循环控制变量会根据增减量的要求更改循环控制变量的值,然后再回到步骤(2)重新判断是否继续执行循环。

for循环的3种方式,参考http://www.cnblogs.com/mengdd/archive/2013/01/21/2870019.html
List list = new ArrayList();

list.add("a");

list.add("b");

list.add("c");
//第一种方式,普通for循环
for(int i = 0; i < list.size(); i++)
{
System.out.println(list.get(i));

}
//第二种方式,使用迭代器
for(Iterator iter = list.iterator(); iter.hasNext();)
{
System.out.println(iter.next());

}

//第三种方式,使用增强型的for循环
for(String str: list)
{

System.out.println(str);

}
for语句是循环的一种形式。

For循环格式如下:
for(赋初值;判断条件;赋值加减){
执行语句
}
若是在循环主体中要处理的语句只有一个,可以将大括号省去。下面列出for循环的流程:
(1)第一次进入for循环是,要为循环控制变量赋初值。
(2)根据判断条件内容检查是否要继续执行循环,当判断条件为真(true)时,继续执行循环主体内的语句;判断条件为假(false)时,则会跳出循环,执行其它语句。
执行完循环主体内的语句后,循环控制变量会根据增减量的要求更改循环控制变量的值,然后再回到步骤(2)重新判断是否继续执行循环。

for循环的3种方式,参考http://www.cnblogs.com/mengdd/archive/2013/01/21/2870019.html
List list = new ArrayList();

list.add("a");

list.add("b");

list.add("c");
//第一种方式,普通for循环
for(int i = 0; i < list.size(); i++)
{
System.out.println(list.get(i));

}
//第二种方式,使用迭代器
for(Iterator iter = list.iterator(); iter.hasNext();)
{
System.out.println(iter.next());

}

//第三种方式,使用增强型的for循环
for(String str: list)
{

System.out.println(str);

}
你debug一下跟着走就知道了:
首先最外层i的循环
1. i=2 内层j的循环条件不符合不执行,执行输出 结果:2
2. i=3 内层j循环1次由于i%j不是0,所以j循环结束 执行输出 结果:2 3
3. i=4 内层j循环2次由于4%2是0,所以执行 continue OuterLoop;
跳出内层循环和外层的本次循环,即本次循环结束,并继续外层的下次循环。
4. i=5 内层j循环3次由于5%2、5%3、5%4都不是0所以5被输出 结果:2 3 5
...
这样推下去就知道本程序的目的是:
输出50以内的质数。
首先是说说行标.行标就是这一行的标识号.JAVA里面没有Goto语句,而行标就是配合Continue和break语句使用的.通常是用于多个循环嵌套时,指定从内循环跳转到哪个外循环.
这个例子里面,分别对应的是:
i j
2 2 j<>
3 2 i%j==0条件不满足,不跳转,退出内循环后,执行输出i,并进入下一轮i的循环
4 2 i%j==0条件满足,跳转到外循环,i++
5 2 i%j==0条件不满足,不跳转,输出i,进入下一轮i的循环.
6 2 i%j==0条件满足,跳转到外循环.i++
........等等
想让出现4 6 8……把你的内层循环去掉就可以了!至于为什么 楼上的说的很对啊!
public class H {

public static void main(String[] args) {
int n=50;

for(int i=2; i<=n; i++){
System.out.println(i);
}
}

}
if(i%j==0){
continue OuterLoop;
}
这段代码把偶数的给去掉了,%是取模 也就是说是取的余数
那当余数为0的时候 continue 了
continue是不向循环的下面执行了,直接执行循环体的下次循环,
偶数的时候都给continue了,当然就没有 偶数了
http://zhidao.baidu.com/question/134414381.html