[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);
}
}
}
}
~~~
- windows -- 环境变量
- Vscode -- 编写java
- 初始java
- java -- 关键字
- 编写第一个java程序
- java -- 注释
- 计算机存储 -- 进制
- java -- 类型
- java -- 变量
- 数字类型
- 布尔类型
- 字符类型
- 类型转换
- 双等比较是什么
- java -- 运算符
- 算数运算符
- 字符串拼接
- 关系/比较运算符
- 自增减运算符
- 逻辑运算符
- 三目运算
- 赋值运算符
- 移位运算符
- 位运算符
- 运算符优先级
- java -- 流程控制语句
- if /else if /if -- 判断
- switch case分支结构
- for -- 循环
- 用双重for循环
- while -- 循环
- do while -- 循环
- 案例练习
- java -- 数组
- 数组的存储
- 数组的增删改查
- 数组的特点
- 数组案例
- 二维数组
- 数组的工具方法
- java -- 方法
- java -- 方法的重载
- java -- 方法的调用流程
- java -- 类方法传参注意事项
- java -- 方法练习案例
- 对比 return break continue
- for each循环
- java -- 基础练习
- java -- 面向对象
- java -- 创建类和对象
- java -- 访问控制符
- java -- 类成员方法
- java -- 构造方法
- java -- this
- java -- 封装
- java -- 对象内存图
- java -- 创建对象案例
- java -- static
- java -- 继承
- super -- 关键字
- java -- 构造块和静态代码块
- java -- 重写
- java -- final
- java -- 多态
- java -- 抽象类
- java -- 接口
- 引用类型数据转换
- 综合案例
- java -- 内部类
- java -- 回调模式
- java -- 枚举类型
- java -- switch 使用枚举
- java -- 枚举方法使用
- java -- 枚举类实现接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 递归练习
- java -- 设计模式
- 单例模式
- java -- 注解
- java -- 元注解
- Java -- 核心类库
- java -- 处理字符串
- Java -- String
- String -- 常用方法
- String -- 正则
- Java -- StringBuilder 和 StringBuffer
- 知识点
- Java -- StringJoiner 字符串拼接
- 练习题
- 字符串的总结
- Java -- 包装类
- Integer
- Double
- Boolean
- Character
- java -- 集合类
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 获取当前时间戳
- Java -- 异常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法