1. 课前回顾:
  2. 1.变量的注意事项:
  3. a.在同一个作用域中不能定义相同名字的变量
  4. b.变量不初始化不能直接使用
  5. c.不同的作用域中的变量不随意互相访问:
  6. 小作用域,能直接访问大作用域中的变量
  7. 大作用域,不能直接访问小作用域中的变量
  8. 2.标识符(自己取的名字)
  9. 硬性规定:名字中可以包含26个字母,数字,$,_ 但是不能以数字开头
  10. 名字不能和关键字重名
  11. 软性建议:
  12. 给类取名时,要遵循大驼峰式(每个单词的首字母大写)
  13. 给方法和变量取名时,要遵循小驼峰式(从第二个单词开始往后首字母大写)
  14. 见名知意
  15. 3.数据类型转换
  16. a.按照取值范围从小到大排列
  17. byte short char-int-long-float-double
  18. b.自动类型转换
  19. 将取值范围小的数据类型赋值给取值范围大的数据类型->小的自动提升为大类型
  20. c.强转
  21. 将取值范围大的数据类型赋值给取值范围小的数据类型->报错,需要强转
  22. 取值范围小的数据类型 变量名 = (取值范围小的数据类型)取值范围大的数据类型
  23. d.强转注意事项:
  24. 不要随意使用强转->出现精度损失,数据溢出的现象
  25. byte,short,如果等号右边是常量,没有超出范围,不用强转(jvm自动转了)
  26. 如果等号右边有变量参与,会自动提升为int型,手动强转
  27. char,参与运算的话也会被提升为int,如果char一旦提升为int了,会去ascii码表中查询字符对应的int
  28. 如果字符没有再ascii码表中,找unicode码表(万国码)
  29. 4.运算符:
  30. 算数运算符: + - * / %(余数)
  31. +:如果遇到字符串,就不再是运算符了,就变成了拼接符号,直接往后拼
  32. ++ --
  33. 单独使用:都是先运算
  34. 混合使用:
  35. 符号在前,先运算,再使用运算后的值
  36. 符号在后,先使用原值,使用完毕之后,自身再计算
  37. 赋值运算符: = += -= *= /= %=
  38. 在复合赋值运算符中,byte,short,不用手动强转(jvm自动转了)
  39. 比较运算符: == > < >= <= != -> boolean型,作为判断条件使用
  40. 逻辑运算符: &&(有假则假) ||(有真则真) !(取反) ^(结果相同为false,不同为true) & |
  41. && || 有短路效果
  42. 三元运算符:
  43. 格式:boolean表达式?表达式1:表达式2
  44. 执行流程:先走boolean,如果是true,走?后面的表达式1,否则走:后面的表达式2
  45. 位运算符:
  46. & | ^ ~ >> << >>>
  47. 今日重点:
  48. idea的使用
  49. Scanner键盘录入
  50. switch使用
  51. if语句的使用
  52. for循环,while循环的使用
  53. 死循环的使用
  54. 嵌套循环的使用

第一章.IDEA的使用

1.idea的介绍

  1. 1.概述:开发工具 java写的 所有需要jdk的环境支持
  2. 2.特点:
  3. 好用
  4. 自动保存
  5. 收费
  6. 自动编译
  7. 有快捷键
  8. 3.作用:
  9. 加速我们的开发
  10. 4.其他的开发工具:eclipse(免费) myeclipse(收费)

2.idea的目录结构

day03.[流程控制] - 图1

3.如何去创建一个Project

day03.[流程控制] - 图2

3.1再次创建一个新的Project

day03.[流程控制] - 图3

或者:

day03.[流程控制] - 图4

4.关闭Project

  1. file->close project

5.打开project

  1. file->close project->open

6.创建module

day03.[流程控制] - 图5

6.1创建新的module

day03.[流程控制] - 图6

或者

day03.[流程控制] - 图7

或者

day03.[流程控制] - 图8

6.2打开和关闭module

关闭:

day03.[流程控制] - 图9

打开:

day03.[流程控制] - 图10

7.创建以及删除package

7.1创建

day03.[流程控制] - 图11

7.2 package的删除

  1. 对着包->右键->delete

7.3 package取名字规范

  1. 1.不要有中文
  2. 2.不要以数字开头
  3. 3.给包取名时一般都是公司域名倒着写,而且都是小写
  4. www.atguigu.com
  5. 那么我们去package包名应该写成:com.atguigu.名字

8.创建类

day03.[流程控制] - 图12

psvm—>生成main方法

sout->生成输出语句

9.基本设置

9.1设置字体

  1. file->settings

day03.[流程控制] - 图13

9.2设置提示的快捷键

  1. file->settings

day03.[流程控制] - 图14

10.快捷键

快捷键 功能
``Alt+Enter 导入包,自动修正代码(重中之重)
``Ctrl+Y 删除光标所在行
``Ctrl+D 复制光标所在行的内容,插入光标位置下面
``Ctrl+Alt+L 格式化代码
``Ctrl+/ 单行注释
``Ctrl+Shift+/ 选中代码注释,多行注释,再按取消注释
``Alt+Shift+上下箭头 移动当前代码行

11.出现的问题

  1. 1.创建project时,要选择empty project
  2. 2.在运行代码时会出现"找不到对应的发行源",证明本地jdk版本和idea中的project level不匹配
  3. 所以要匹配版本
  4. file->project Structure->点击project->引入本地jdk->project level选择对应的版本
  5. 3.没有out路径的问题
  6. out路径是专门存放idea自动编译生成的.class文件的
  7. 所以需要指明out路径

第二章.键盘录入_Scanner

  1. 1.概述:ScannerJava自己创建的类
  2. 2.作用:通过键盘录入的形式,将数据放到程序中参与运行
  3. 3.使用:
  4. a.导包:找到这个包下要使用的类 -> import 包名.类名->import java.util.Scanner;
  5. b.创建对象:目的为了能够调用Scanner中的方法,实现键盘了录入
  6. Scanner 名字 = new Scanner(System.in)
  7. c.调用方法,真正的实现键盘录入功能
  8. 名字.方法名()
  9. nextInt()-->键盘录入int型的整数
  10. nextDouble()-->录入小数
  11. next()->录入字符串
  1. public class Demo01Scanner {
  2. public static void main(String[] args) {
  3. //创建对象
  4. Scanner scanner = new Scanner(System.in);
  5. System.out.println("请你输入:");
  6. int data1 = scanner.nextInt();
  7. System.out.println(data1+1);
  8. System.out.println("================");
  9. //录入一个字符串
  10. String data2 = scanner.next();
  11. System.out.println(data2);
  12. }
  13. }
  1. 需求:通过键盘录入的形式输入两个整数,让整数相加,输出结果
  2. 步骤:
  3. 1.创建Scanner对象
  4. 2.调用两次nextInt()方法,键盘录入两个整数
  5. 3.让两个整数相加
  1. public class Demo02ScannerTest {
  2. public static void main(String[] args) {
  3. //1.创建Scanner对象
  4. Scanner scanner = new Scanner(System.in);
  5. //2.调用两次nextInt()方法,键盘录入两个整数
  6. System.out.println("请您输入第一个整数:");
  7. int data1 = scanner.nextInt();
  8. System.out.println("请您输入第二个整数:");
  9. int data2 = scanner.nextInt();
  10. //3.让两个整数相加
  11. int sum = data1+data2;
  12. System.out.println("两个整数的和为:"+sum);
  13. }
  14. }
  1. //操作Scanner是出现的问题:实际录入的数据类型和我们想要的类型不一致

day03.[流程控制] - 图15

next()->键盘录入字符串->遇到空格就结束输入

nextLine()->键盘录入字符串->遇到回车才结束输入

  1. public class Demo03Scanner {
  2. public static void main(String[] args) {
  3. Scanner sc = new Scanner(System.in);
  4. /*
  5. 如果输入的是abc haha,那么从空格开始next()就输入结束了
  6. 那么从空格开始其实给了nextLine了
  7. */
  8. String data = sc.next();
  9. String data1 = sc.nextLine();
  10. System.out.println(data);
  11. System.out.println(data1);
  12. }
  13. }

第三章.switch(选择语句)

1.switch基本使用

  1. 1.格式:
  2. switch(表达式){
  3. case 目标值1:
  4. 执行语句1;
  5. break;
  6. case 目标值2:
  7. 执行语句2;
  8. break;
  9. case 目标值3:
  10. 执行语句3;
  11. break;
  12. ...
  13. default:
  14. 执行语句n;
  15. break
  16. }
  17. 2.注意:
  18. switch后面的表达式一般写变量
  19. case后面的目标值一般写常量
  20. 3.执行流程:
  21. switch后面的表达式接收的值和下面的case后面的目标值做匹配
  22. 匹配上哪个case后面的目标值,就执行哪个case对应的执行语句
  23. break(结束switch语句)
  24. 4.注意:
  25. a.break的作用为:结束switch语句
  26. b.switch语句中可以填写以下类型数据:
  27. byte short int char 枚举类型(jdk5是新增),String类型(jdk7新增)
  1. public class Test01Switch {
  2. public static void main(String[] args) {
  3. int i = 3;
  4. switch (i){
  5. case 1:
  6. System.out.println("这是case1");
  7. break;
  8. case 2:
  9. System.out.println("这是case2");
  10. break;
  11. case 3:
  12. System.out.println("这是case3");
  13. break;//结束switch
  14. case 4:
  15. System.out.println("这是case4");
  16. break;
  17. default:
  18. System.out.println("这是default");
  19. break;
  20. }
  21. }
  22. }
  1. public class Test02Switch {
  2. public static void main(String[] args) {
  3. Scanner sc = new Scanner(System.in);
  4. System.out.println("请您输入一个月份:");
  5. int month = sc.nextInt();
  6. switch (month){
  7. case 12:
  8. System.out.println("冬天");
  9. break;
  10. case 1:
  11. System.out.println("冬天");
  12. break;
  13. case 2:
  14. System.out.println("冬天");
  15. break;
  16. case 3:
  17. System.out.println("春天");
  18. break;
  19. case 4:
  20. System.out.println("春天");
  21. break;
  22. case 5:
  23. System.out.println("春天");
  24. break;
  25. case 6:
  26. System.out.println("夏天");
  27. break;
  28. case 7:
  29. System.out.println("夏天");
  30. break;
  31. case 8:
  32. System.out.println("夏天");
  33. break;
  34. case 9:
  35. System.out.println("秋天");
  36. break;
  37. case 10:
  38. System.out.println("秋天");
  39. break;
  40. case 11:
  41. System.out.println("秋天");
  42. break;
  43. default:
  44. System.out.println("您输入有误!");
  45. break;
  46. }
  47. }
  48. }

2.case的穿透性

  1. 1.什么时候出现case的穿透性:case下面没有break
  2. 2.没有break,就一直往下穿透执行,直到遇到break或者switch代码结束
  1. public class Test04Switch {
  2. public static void main(String[] args) {
  3. Scanner sc = new Scanner(System.in);
  4. System.out.println("请您输入一个月份:");
  5. int month = sc.nextInt();
  6. switch (month){
  7. case 12:
  8. case 1:
  9. case 2:
  10. System.out.println("冬天");
  11. break;
  12. case 3:
  13. case 4:
  14. case 5:
  15. System.out.println("春天");
  16. break;
  17. case 6:
  18. case 7:
  19. case 8:
  20. System.out.println("夏天");
  21. break;
  22. case 9:
  23. case 10:
  24. case 11:
  25. System.out.println("秋天");
  26. break;
  27. default:
  28. System.out.println("您输入有误!");
  29. break;
  30. }
  31. }
  32. }

第四章.分支语句

1.if的第一种格式

  1. 1.格式:
  2. if(boolean表达式){
  3. 执行语句
  4. }
  5. 2.执行流程:
  6. if后面的boolean表达式,如果是true,执行if后面大括号中的执行语句
  1. public class Demo01If {
  2. public static void main(String[] args) {
  3. int i = 10;
  4. int j = 20;
  5. if (i==j){
  6. System.out.println("i和j相等");
  7. }
  8. System.out.println("我要执行了");
  9. }
  10. }

1.1练习

  1. 案例:从键盘输入年份,请输出该年的2月份的总天数。闰年2月份29天,平年28天。
  2. 闰年:
  3. 1)能被4整除,不能被100整除
  4. 2)能被400整除
  5. 步骤:
  6. 1.创建Scanner对象,调用nextInt()方法输入一个年份 ->year
  7. 2.利用if判断条件为:
  8. year%4==0 && year%100!=0 || year%400==0
  9. 3.判断条件如果是true
  10. 输出闰年2月有29
  1. public class Demo02IfTest {
  2. public static void main(String[] args) {
  3. //1.创建Scanner对象,调用nextInt()方法输入一个年份 ->year
  4. Scanner sc = new Scanner(System.in);
  5. System.out.println("请您输入一个年份:");
  6. int year = sc.nextInt();
  7. /* 2.利用if判断条件为:
  8. year%4==0 && year%100!=0 || year%400==0*/
  9. if ((year%4==0 && year%100!=0) || year%400==0){
  10. /*3.判断条件如果是true
  11. 输出闰年2月有29天*/
  12. System.out.println("闰年2月有29天");
  13. }
  14. }
  15. }

2.if的第二种格式

  1. 1.格式:
  2. if(boolean表达式){
  3. 执行语句1;
  4. }else{
  5. 执行语句2;
  6. }
  7. 2.执行流程:
  8. a.走if后面的boolean表达式
  9. b.如果是true,走if后面大括号中的执行语句1
  10. c.否则,走else后面的执行语句2
  11. 3.使用环境:
  12. 2种情况判断
  1. public class Test01 {
  2. public static void main(String[] args) {
  3. int i = 10;
  4. int j = 20;
  5. if (i==j){
  6. System.out.println("i和j相等");
  7. }else{
  8. System.out.println("i和j不相等");
  9. }
  10. }
  11. }

2.1 练习

  1. 任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数
  2. 步骤:
  3. 1.创建Scanner,调用nextInt()键盘录入一个整数 number
  4. 2.判断number%2==0,如果余数为0,证明是偶数,否则为奇数
  1. public class Test02 {
  2. public static void main(String[] args) {
  3. Scanner sc = new Scanner(System.in);
  4. int data = sc.nextInt();
  5. if (data%2==0){
  6. System.out.println("data为偶数");
  7. }else{
  8. System.out.println("data为奇数");
  9. }
  10. }
  11. }

2.2练习

  1. 需求.利用if else 求出两个数的较大值
  1. public class Test03 {
  2. public static void main(String[] args) {
  3. int i = 10;
  4. int j = 20;
  5. if (i>j){
  6. System.out.println(i);
  7. }else {
  8. System.out.println(j);
  9. }
  10. }
  11. }

2.3练习

  1. public class Test06 {
  2. public static void main(String[] args) {
  3. boolean num1 = false;
  4. boolean num2 = true;
  5. int i = 1;
  6. if (num1 = num2){//相当直接写了一个true
  7. i++;
  8. System.out.println(i);
  9. }
  10. if (false){//相当于直接写了一个false
  11. --i;
  12. System.out.println(i);
  13. }
  14. }
  15. }

3.if的第三种格式

  1. 1.格式:
  2. if(boolean表达式){
  3. 执行语句1;
  4. }else if(boolean表达式){
  5. 执行语句2;
  6. }else if(boolean表达式){
  7. 执行语句3;
  8. }...else{
  9. 执行语句n;
  10. }
  11. 2.执行流程:
  12. a.先走ifboolean表达式,如果是true.走if的执行语句1
  13. b.如果是false,走下面的else if,接着判断,如果是true,走执行语句2
  14. c.如果是false,接着走下面的else if
  15. d.如果以上所有的判断都不成立,就走else对应的执行语句n
  16. 3.使用场景:
  17. 2种情况以上的判断
  1. public class Test01 {
  2. public static void main(String[] args) {
  3. int i = 10;
  4. int j = 10;
  5. if (i>j){
  6. System.out.println("i大于j");
  7. }else if(i<j){
  8. System.out.println("i小于j");
  9. }else{
  10. System.out.println("i等于j");
  11. }
  12. }
  13. }

3.1.练习

  1. 需求:
  2. 键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
  3. 输入 1 输出 星期一
  4. 输入 2 输出 星期二
  5. 输入 3 输出 星期三
  6. 输入 4 输出 星期四
  7. 输入 5 输出 星期五
  8. 输入 6 输出 星期六
  9. 输入 7 输出 星期日
  10. 输入 其它数字 输出 数字有误
  11. 步骤:
  12. 1.创建Scanner对象,调用nextInt()录入一个整数 week
  13. 2.如果输入的是1,输出星期一,以此类推
  1. public class Test02 {
  2. public static void main(String[] args) {
  3. //创建Scanner对象
  4. Scanner sc = new Scanner(System.in);
  5. System.out.println("请您输入一个星期数:");
  6. int week = sc.nextInt();
  7. /* if (week==1){
  8. System.out.println("周一");
  9. }else if(week==2){
  10. System.out.println("周二");
  11. }else if(week==3){
  12. System.out.println("周三");
  13. }else if(week==4){
  14. System.out.println("周四");
  15. }else if(week==5){
  16. System.out.println("周五");
  17. }else if(week==6){
  18. System.out.println("周六");
  19. }else if(week==7){
  20. System.out.println("周日");
  21. }else{
  22. System.out.println("输入有误");
  23. }*/
  24. if (week>7 || week<1){
  25. System.out.println("输入有误");
  26. }else{
  27. if (week==1){
  28. System.out.println("周一");
  29. }else if(week==2){
  30. System.out.println("周二");
  31. }else if(week==3){
  32. System.out.println("周三");
  33. }else if(week==4){
  34. System.out.println("周四");
  35. }else if(week==5){
  36. System.out.println("周五");
  37. }else if(week==6){
  38. System.out.println("周六");
  39. }else if(week==7){
  40. System.out.println("周日");
  41. }
  42. }
  43. }
  44. }

3.2练习

  1. - 需求: 小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
  2. - 奖励规则:
  3. 95~100 山地自行车一辆
  4. 90~94 游乐场玩一次
  5. 80~89 变形金刚玩具一个
  6. 80以下 胖揍一顿
  1. public class Test03 {
  2. public static void main(String[] args) {
  3. //创建Scanner对象
  4. Scanner sc = new Scanner(System.in);
  5. int score = sc.nextInt();
  6. if (score>=95 && score<=100){
  7. System.out.println("山地自行车一辆");
  8. }else if(score>=90 && score<=94){
  9. System.out.println("游乐场玩一次");
  10. }else if(score>=80 && score<=89){
  11. System.out.println("变形金刚玩具一个");
  12. }else if (score>=0 && score<80){
  13. System.out.println("胖揍一顿");
  14. }else{
  15. System.out.println("分数有误");
  16. }
  17. }
  18. }

第五章.循环语句_for

1.for循环

  1. 1.格式:
  2. for(初始化变量;比较;步进表达式){
  3. 循环语句
  4. }
  5. 2.执行流程:
  6. a.初始化变量
  7. b.比较,如果是true,进入for循环,执行循环语句
  8. c.执行步进表达式(初始化变量的值变化)
  9. d.再次比较,如果还是true,继续进入到for循环中,执行循环语句
  10. e.再步进表达式,再比较,直到比较失败,返回false,for循环结束
  1. public class Test01 {
  2. public static void main(String[] args) {
  3. for (int i = 0;i<3;i++){
  4. System.out.println("我爱大数据");
  5. }
  6. }
  7. }

day03.[流程控制] - 图16

1.1练习

  1. for循环练习1:求1-3之间的数据和,并把求和结果在控制台输出
  2. 1+2+3
  3. 步骤:
  4. 1.定义一个变量sum,表示两个数相加的和
  5. 2.利用for循环将1-3的数表示出来
  6. 3.循环体中进行两两相加,将结果赋值给sum
  1. public class Test02 {
  2. public static void main(String[] args) {
  3. //1.定义一个变量sum,表示两个数相加的和
  4. int sum = 0;
  5. //2.利用for循环将1-3的数表示出来
  6. for (int i = 1;i<=3;i++){
  7. sum+=i;//sum = sum+i;
  8. }
  9. //3.循环体中进行两两相加,将结果赋值给sum
  10. System.out.println(sum);
  11. }
  12. }

day03.[流程控制] - 图17

1.2练习

  1. 需求:求出1-100的偶数和
  2. 步骤:
  3. 1.定义一个变量,来接收两个数的和
  4. 2.利用for循环将1-100表示出来
  5. 3.判断,如果%2==0,证明是偶数,然后相加
  6. 4.输出结果
  1. public class Test03 {
  2. public static void main(String[] args) {
  3. //1.定义一个变量,来接收两个数的和
  4. int sum = 0;
  5. //2.利用for循环将1-100表示出来
  6. for (int i = 1; i <= 100; i++) {
  7. //3.判断,如果%2==0,证明是偶数,然后相加
  8. if (i%2==0){
  9. sum+=i;
  10. }
  11. }
  12. //4.输出结果
  13. System.out.println("sum:"+sum);
  14. }
  15. }

1.3练习

  1. 需求:统计一下1-100之间的偶数个数
  2. 步骤:
  3. 1.定义一个变量,count 用来统计
  4. 2.利用for循环将1-100的数表示出来
  5. 3.在循环体中判断,如果是偶数,count++
  6. 4.输出count
  1. public class Test04 {
  2. public static void main(String[] args) {
  3. // 1.定义一个变量,count 用来统计
  4. int count = 0;
  5. // 2.利用for循环将1-100的数表示出来
  6. for (int i = 1;i<=100;i++){
  7. // 3.在循环体中判断,如果是偶数,count++
  8. if (i%2==0){
  9. count++;
  10. }
  11. }
  12. // 4.输出count
  13. System.out.println(count);
  14. }
  15. }

快捷键: 次数.fori

第六章.循环语句_while

1.while循环

1.1while循环的简单使用

  1. 1.格式:
  2. 初始化变量
  3. while(比较){
  4. 循环语句
  5. 步进表达式
  6. }
  7. 2.执行流程:
  8. a.初始化变量
  9. b.比较,如果是true,进入循环体执行循环语句,走步进表达式
  10. c.继续比较,如果还是true,继续执行循环语句,走步进表达式
  11. d.继续比较,知道比较为false,while循环结束
  1. public class Test01 {
  2. public static void main(String[] args) {
  3. int i = 0;
  4. while(i<5){
  5. System.out.println("我爱bigdata");
  6. i++;
  7. }
  8. }
  9. }
  1. public class Test01 {
  2. public static void main(String[] args) {
  3. int i = 1;
  4. int sum = 0;
  5. while(i<=100){
  6. if (i%2==0){
  7. sum+=i;
  8. }
  9. i++;
  10. }
  11. System.out.println(sum);
  12. }
  13. }

1.2while练习

  1. 需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?27
  2. 步骤:
  3. 1.定义一个变量,表示山峰的高度:shanFeng
  4. 2.定义一个变量,表示纸的厚度:paper
  5. 3.循环比较,如果paper<shanFeng
  6. 就开始折.paper*2
  7. count++
  8. 4.输出count
  1. public class Test02 {
  2. public static void main(String[] args) {
  3. //1.定义一个变量,表示山峰的高度:shanFeng
  4. int shanFeng = 8844430;
  5. //2.定义一个变量,表示纸的厚度:paper
  6. double paper = 0.1;
  7. //3.定义一个count,来统计折纸的次数
  8. int count = 0;
  9. /* 4.循环比较,如果paper<shanFeng
  10. 就开始折.paper*2
  11. count++*/
  12. while(paper<shanFeng){
  13. paper = paper*2;
  14. count++;
  15. System.out.println(paper);
  16. }
  17. //5.输出count
  18. System.out.println(count);
  19. }
  20. }

2.do…while循环

  1. 1.格式:
  2. 初始化变量
  3. do{
  4. 循环语句
  5. 步进表达式
  6. }while(比较);
  7. 2.执行流程:
  8. a.初始化变量
  9. b.执行循环语句,走步进表达式
  10. c.比较,如果是true,执行循环语句,再步进
  11. d.再比较,知道比较为false,do...while结束
  12. 3.特点:
  13. 至少执行一次
  1. public class Test03 {
  2. public static void main(String[] args) {
  3. int i = 0;
  4. do {
  5. System.out.println("我爱大数据");
  6. i++;
  7. }while(i<10);
  8. }
  9. }

温馨小提示:快速生成for循环-> 次数.fori

xmind快捷键:

生成子主题 tab
生成兄弟主题 回车
编辑主题 F2
添加备注 F4
删除主题 delete