合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
[TOC] >[success] # 用双重for循环 * 外层循环用于控制打印的行数,内层循环用于控制打印的列数,外层循环改一次,内层循环一遍。 * 在嵌套的循环结构中,break用于退出所在循环体,如果要退出外层循环体,需要使用标号的方式。 ~~~ outer: for (...) { for(...) { break outer; } } ~~~ >[danger] ##### 打印星星 ![](https://img.kancloud.cn/df/c8/dfc813c3ed488ff320ebf19de4979d0f_1167x279.png) ~~~ public class StartTest { public static void main(String[] args) { for (int i = 0; i < 5; i++) { for (int j = 0; j < 5; j++) { System.out.print("*"); } System.out.println(); } System.out.println("------------------"); for (int i = 0; i < 5; i++) { for (int j = 0; j < i; j++) { System.out.print("*"); } System.out.println(); } System.out.println("------------------"); for (int i = 5; i > 0; i--) { for (int j = 0; j < i; j++) { System.out.print("*"); } System.out.println(); } System.out.println("------------------"); for (int i = 0; i < 5; i++) { // 控制空格的个数 for (int j = 1; j <= 5 - i; j++) { System.out.print(" "); } for (int j = 0; j < 2 * i - 1; j++) { System.out.print("*"); } System.out.println(); } } } ~~~ >[danger] ##### 打印九九乘法表 ~~~ /* 使用双重for循环打印九九乘法表 */ public class ForForTableTest { public static void main(String[] args) { // 1.使用外层for循环控制打印的行数,一共9行 outer:for(int i = 1; i <= 9; i++) { // 2.使用内层for循环控制打印的列数,最多9列,规律是:与当前行所在的行数相等 for(int j = 1; j <= i; j++) { // 3.使用两个循环变量来拼接等式 System.out.print(j + "*" + i + "=" + j*i + " "); // 4.当打印完毕6*6 = 36后结束整个打印 if(6 == j) { //break; // 主要用于跳出循环,但该关键字只能跳出当前所在的循环 break outer; // 表示可以跳出外层for循环 } } System.out.println(); } } } ~~~ >[danger] ##### 打印素数 ~~~ /* 编程使用双重for循环打印2 ~ 100之间的所有素数 */ public class ForForPrimeTest { public static void main(String[] args) { // 1.使用for循环打印2 ~ 100之间的所有整数 for(int i = 2; i <= 100; i++) { // 3.声明一个boolean类型的变量作为是否为素数的标记 boolean flag = true; // 2.针对每一个当前的整数都要判断是否为素数,若是素数则打印,否则不打印 // 判断一个数是否为素数的方法是:若该数不能被2到它本身-1之间的所有整数整除时,则证明该数是素数 // 使用内层for循环用于控制2到该数自身-1之间的范围 //for(int j = 2; j < i; j++) { // 只需要判断2到该数的平方根即可,因为随着除数的增大商必然减小,会造成重复的判断 for(int j = 2; j <= Math.sqrt(i); j++) { // 使用当前数除以该循环中的每个数据并判断是否可以整除,只要找到一个可以整除的数据,则证明该数不是素数 if(0 == i % j) { flag = false; break; // 跳出当前所在的内层循环,也就是不需要再继续除以下一个整数 } } // 只可以打印素数 if(flag) { System.out.println("i = " + i); } } } } ~~~