引言
- 在记录自己自学java过程中,首先声明关于学习顺序可能并不很科学,即使我也是通过一些公开的资料来进行学习,但不会是完全无基础的教学,更像是比对着python(本人平时编程使用的是python)比较实现方法的异同学习,请酌情参考学习,有理解不对的地方欢迎指正。
java-流程控制 6
break和continue
补:for each循环
- 其实当遍历数组的时候,可以使用for each循环
public class Main {
public static void main(String[] args) {
int[] ns = { 1, 4, 9, 16, 25 };
for (int n : ns) {
System.out.println(n);
}
}
}

- for each循环的变量n不再是计数器,而是直接对应到数组的每个元素,除此之外还可以遍历所有“可迭代”的数据类型,比如List、Map等
- 但是同样可以看出来for each循环非常简洁,显然是无法指定遍历顺序,也无法获取数组的索引。
break和Continue在各个循环的使用场景
- 首先是在for循环中,所有的控制语句都在
()中,如果想中途满足条件中止显然括号内有时候不方便定义, 那就可以配合满足if的停止条件和关键字break来跳出循环
public class Main {
public static void main(String[] args) {
int sum = 0
for (int i=1
sum = sum + i
if (i == 100) {
break
}
}
System.out.println(sum)
}
}
- 因此,break语句通常都是配合if语句使用
- 但是需要注意的是,在多层嵌套循环中break退出循环只退出所在的那一层循环(应该也算是常识吧,但是最主要是如果结构比较混乱就容易出问题,python中理解这一点倒是不容易出问题)
public class Main {
public static void main(String[] args) {
for (int i=1; i<=10; i++) {
System.out.println("i = " + i);
for (int j=1; j<=10; j++) {
System.out.println("j = " + j);
if (j >= i) {
break;
}
}
System.out.println("breaked");
}
}
}

- 关于continu主要是关于到底跳过这次循环,但是执行了多少呢?
public class Main {
public static void main(String[] args) {
int sum = 0;
for (int i=1; i<=10; i++) {
System.out.println("begin i = " + i);
if (i % 2 == 0) {
continue;
}
sum = sum + i;
System.out.println("end i = " + i);
}
System.out.println(sum);
}
}


- 就算break会终止跳出也会执行完break之前的代码,并不会整个循环代码都不执行