intro
循环永远实现你编程的第一选择,毕竟我们处理的都是多维数据,让我们从一个简单的100以内(包括100)的整数相加开始吧!
例子
1到100以内整数相加
public class HelloWord{
public static void main(String[] args) {
int i = 0;
int sum = 0;
while(i<101){
sum += i;
i++;
}
}
}
public class HelloWorld{
public static void main(String[] args){
sum = 0;
for(i = 1; i < 101; i++) {
sun += i;
}
}
}
注意在for里面生成的i,作用域在for里面。
例子2
现在我们只要偶数相加
public class HelloWorld{
public static void main(String[] args) {
int sum = 0;
for(int i = 1; i < 101; i++) {
if(i%2)
continue;
sum += i;
}
}
}
continue就是跳过这个loop,而break自然是跳出整个for
break嵌套loop
flag变量
在嵌套循环中,跳出所有loop,是个小技巧,利用了一个变量充当flag。
public class HelloWorld {
public static void main(String[] args) {
boolean breakout = false; //是否终止外部循环的标记
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.println(i + ":" + j);
if (0 == j % 2) {
breakout = true; //终止外部循环的标记设置为true
break;
}
}
if (breakout) //判断是否终止外部循环
break;
}
}
}
标签
类似于vhdl
public class HelloWorld {
public static void main(String[] args) {
//打印单数
outloop: //outloop这个标示是可以自定义的比如outloop1,ol2,out5
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.println(i+":"+j);
if(0==j%2)
break outloop; //如果是双数,结束外部循环
}
}
}
}
举一反一,continue也可以continue outloop
Reference
[1] https://how2j.cn/k/control-flow/control-flow-break-out/279.html