学习日记
一、break 和 continue 区别
-
break:在任何循环语句的主体部分,均可用 break 控制循环的流程,用于强制退出循环,不执行循环中剩余的语句(退出所有循环), break 也可在 switch 语句中使用。
-
continue:在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定(回到循环的开始)。
举例 1:break 举例
package com.Sun3285.struct;
public class BreakPractice {
public static void main(String[] args) {
//break 举例
int x = 0;
for (int i = 0; i < 100; i++) {
x++;
if (x == 10) {
break; //强制退出循环
}
System.out.println(x);
}
}
}
举例 2:continue 举例
package com.Sun3285.struct;
public class ContinuePractice {
public static void main(String[] args) {
//continue 举例
int x = 0;
for (int i = 0; i < 100; i++) {
x++;
if (x % 10 == 0) {
System.out.println();
continue; //x 是 10 的倍数,终止本次循环
}
System.out.print(x + "\t");
}
}
}
二、练习
练习 1:打印 101-150 之间所有的质数
思路:先判断一个数是否是质数 --> 用循环遍历所有数
package com.Sun3285.struct;
public class PracticeOne {
public static void main(String[] args) {
//打印 101-150 之间所有的质数
for (int a = 101; a <= 150; a++) {
int num = 0;
for (int i = 2; i < a; i++) { //遍历
if (a % i == 0) {
num++;
}
}
switch (num) { //判断一个数是否是质数
case 0:
System.out.print(a + "\t");
break;
}
}
}
}
练习 2:打印三角形
思路:先打印 1,再打印 2,最后打印 3
package com.Sun3285.struct;
public class PracticeTwo {
public static void main(String[] args) {
//打印三角形 5 行
/*
*
***
*****
*******
*********
*/
for (int i = 1; i < 6; i++) { //循环次数就是三角形的行数
for (int j = 5; j > i; j--) { //打印 1
System.out.print(" ");
}
for (int j = 0; j < i; j++) { //打印 2
System.out.print("*");
}
for (int j = 1; j < i; j++) { //打印 3
System.out.print("*");
}
System.out.println(); //每执行完内循环,换行
}
}
}
- 可以用 Debug 一步一步进行检查
注意:
-
双循环中有 break,只能跳出 break 所在的那个循环。
-
遇到问题用拆分的思想。
-
step over:步过,在函数内遇到子函数时不会进入子函数内部执行,而是将子函数整个作为一步执行。
-
step into:步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,单步执行。
-
step out:单步执行到子函数内时,用 step out 就可以执行完子函数余下部分,并返回到上一层函数。