目录
一. 嵌套循环(多重循环)
练习1:九九乘法表
练习2:100以内的所有质数
练习3:直角三角形 (利用for循环,打印出显现在左边的直角三角形)
二. break continue的使用
1. break 的使用
break 的使用练习:
2 . continue的使用
continue练习:
3. retutn 的使用
练习:
总结:
一. 嵌套循环(多重循环)
将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for、while、do...while 均可以作为外层循环或内层循环。
实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
设外层循环次数为m次,内层为n次,则内层循环体实质上需要执行m*n次。
通俗讲就是,存在至少2层for循环,根据外层的条件,判断里层能否执行;如果能执行,就把里层代码都循环完毕后,再继续判断是否执行外层循环的下一次循环。
练习1:九九乘法表
class ForForTest{
public static void main(String[] args) {
//九九乘法表
for(int i = 1;i <= 9;i++){
for(int j = 1;j <= i;j++){
System.out.print(i + "*" + j + "=" + i*j + " ");
}
System.out.println(); //换行
}
}
}
快捷键 Ctrl + Shift + F10 运行,控制器输出
练习2:100以内的所有质数
class PrimeNuberTest{
public static void main(String[] args) {
boolean isFlag = true; //标识是否被除尽,一旦除尽,修改其值。
for (int i = 2; i <= 100; i++) { //遍历100以内的自然数
for (int j = 2; j < i; j++) { //j:被i去除 这里写 j < i/2 会更好
if (i % j == 0) { //i被j除尽
isFlag = false;
}
}
if(isFlag == true){
System.out.println(i);
}
//重置isFlag
isFlag = true;
}
}
}
快捷键 Ctrl + Shift + F10 运行,控制器输出
练习3:直角三角形 (利用for循环,打印出显现在左边的直角三角形)
需要注意的是:在内循环中,需要修改内循环的循环条件,让 j 的最大值随着 i 改变,否则这内循环就成了写死的状态了。
//行1星1 *
//行2星2 * *
//行3星3 * * *
//行4星4 * * * *
//行i星i * * * * *
class TestForTriangle {
public static void main(String[] args) {
for(int i = 1;i<6;i++) {//外循环
for (int j = 1; j <=i; j++) {//内循环
//注意:需要修改内循环的循环条件,让j的最大值随着i改变,否则写死了
System.out.print("*");//在同一轮/同一行打印不换行
}
System.out.println();//空白行用来换行
}
}
}
控制器输出打印
二. break 、continue、return的使用
1. break 的使用
- break 语句用于终止某个语句块的执行。
- 在循环中遇到break语句时,循环被终止,在循环后面的语句重新开始。
- break 语句能使用于任何Java循环中,包括人们有意设置的无限循环
- swith 循环语句中break 仅影响 switch 语句,不会影响循环。
- 在一系列嵌套循环中使用break 语句时,它将仅仅终止最里面的循环。
语法:
{
......
break;
......
}
break 的使用练习:
public class Testapp1 {
public static void main(String[] args) {
// 外循环,循环5次
for (int i = 0; i < 5; i++) {
System.out.print("第" + (i + 1) + "次循环:");
// 内循环,设计为循环10次
for (int j = 0; j < 10; j++) {
// 判断j是否等于3,如果是,则终止循环
if (j == 3) {
break;
}
System.out.print("内循环的第" + (j + 1) + "次循环\t");
}
System.out.println();
}
}
}
运行输出:
2 . continue的使用
- continue 只能使用在循环结构中
- continue 语句用于跳过其所在循环语句块的一次执行,
- continue 语句是用来加速循环
continue练习:
public class Testapp1 {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
if (i%3 == 0) {
continue;
//这里写代码编译会报错
}
System.out.println(i);
}
}
}
运行输出:
3. retutn 的使用
return :并非专门用于结束循环的,它的功能是结束一个方法,当一个方法执行到一个return语句时,这个方法将被结束。
与break 和 continue 不同的是,return 直接结束整个方法,不管这个return 处于多少层循环之内。
练习:
public class Testapp1 {
public static void main(String[] args) {
// 外循环,循环5次
// 循环 打印 1-10 如果是3的倍数,则不打印
for (int i = 1; i < 10; i++) {
if (i%3 == 0) {
//continue;
return; //直接退出main函数
}
System.out.println(i);
}
}
}
运行输出:
总结:
break 只能用于switch 语句和循环语句中。
continue 只能用于循环语句中。
二者功能类似,但continue 是终止本次循环,break 是终止本层循环。
break、continue 之后不能有其他的语句,因为程序永远不会执行其后的语句。
标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。