我是靠谱客的博主 细心八宝粥,这篇文章主要介绍【Java】java控制语句的那些事(最全知识点)流程控制语句,现在分享给大家,希望可以做个参考。

【Java】java控制的那些事(最全知识点)

学习一门语言,最基础的不过控制语句,语言之间互通性最高的也是控制语句,如果你连控制语句都没搞懂,都不熟悉,那么你的编程之路注定不顺利,所以奔本篇详细介绍了控制语句的各类知识点

文章目录

    • 【Java】java控制的那些事(最全知识点)
  • 流程控制语句
    • 流程控制语句分类:
    • 顺序结构
    • 选择结构
      • if语句
        • if语句第一种格式的基本使用
        • if语句第二种格式的基本使用
        • if语句第三种格式的基本使用
      • switch语句的格式和执行流程
    • 循环控制语句
      • for循环
      • while循环格式和基本使用
      • do...while循环格式及基本使用
      • for, while, do...while三种循环的区别
    • 控制循环语句
      • break跳转控制语句的概述和基本使用
      • continue跳转控制语句
      • 控制跳转语句分析
    • 扩展
      • 总结
      • if语句格式
      • switch语句的格式
      • for循环格式
      • while循环格式
      • do...while格式

流程控制语句

流程控制语句分类:

  1. 顺序结构
  2. 选择结构
  3. 循环结构

顺序结构

  • 顺序结构是最基本的流程
  • 顺序结构的特点: 从上往下依次进行

选择结构

if语句

if语句第一种格式的基本使用

  • 选择结构:

    • 也被称为分支结构
  • 选择结构有2种:

    1. if语句
    2. switch语句
  • if语句的第一种格式: 只使用if

复制代码
1
2
3
4
5
6
7
8
9
10
11
// 格式 if(关系表达式) { 语句体 } // 示例 int a = 0; if(a == 1) { System.out.println("a等于1"); }
  • 第一种格式的执行流程:
    • 首先判断关系表达式的结果是true还是false
      • 如果是true就执行语句体
      • 如果是false就不执行语句体

if语句第二种格式的基本使用

  • if语句的第二种格式: if…else…
  • 第二种格式的执行流程:
  • 首先判断关系表达式看其结果是true还是false
    • 如果是true就执行语句体1
    • 如果是false就执行语句体2

if语句第三种格式的基本使用

  • if语句的第三种格式: if…else if…else
复制代码
1
2
3
4
5
6
7
8
9
10
11
// 格式 if(关系表达式1) { 语句体1 } else if (关系表达式2) { 语句体2 }...{ } else { // else {} 是可选的 语句体n }
  • 第三种格式的执行流程:
    • 首先判断关系表达式1, 看其结果是true还是false
      • 如果是true就执行语句体1
      • 如果是false就继续判断关系表达式2, 看其结果是true还是false
        • 如果是true就执行语句体2
        • 如果是false就继续判断关系表达式3, 看其结果是true还是false
      • 如果没有任何关系表达式为true, 就执行else中的语句体
  • 能不能省略最后的else? 可以

switch语句的格式和执行流程

  • switch语句的格式
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
switch(表达式) { case1: 语句体1; break; case2: 语句体2; break; ... case 值n: 语句体n; break; default: 语句体n+1; break; }
  • 说明
    • switch表达式允许的数据类型:
      • byte, short, char, int
        • 都是可隐式转换为int的类型, 因为byte, short, char可以隐式转换为int, 所以也可以使用
      • JDK5起可以是枚举类型
      • JDK7起可以是String
      • 小括号中可以是常量, 也可以是变量
    • case后面的值:
      • 用来和表达式的值进行匹配
      • 值只能是常量
      • 值的类型应该和switch小括号中值的类型一致
    • break: 中断
    • default: 当所有case都不匹配时, 执行default
  • 执行流程
    • 首先计算表达式的值
    • 然后执行符合的case
    • 如果没有符合的case, 则执行default

循环控制语句

  • 循环语句: 在满足循环条件的情况下, 反复执行某段代码.
    • 循环体: 这段被重复执行的代码
  • 循环的停止:
    • 在合适的时候将循环判断条件修改为false, 从而结束循环. 否则循环将一直执行下去, 形成死循环
  • 循环语句的组成
    • 初始化语句: 一条语句(一条语句可以初始化多个变量), 这些语句完成一些初始化操作
    • 判断条件语句: boolean表达式, 这个表达式能决定是否执行循环体
    • 循环体语句: 要重复做的事情
    • 控制条件语句: 控制循环结束
  • 3种循环结构语句
    1. for循环
    2. while循环
    3. do…while循环

for循环

  • 格式
复制代码
1
2
3
4
5
6
7
8
9
10
11
// 格式 for(初始化语句; 判断条件语句; 控制条件语句) { 循环体语句; } // for循环适用于知道循环多少次的情况 // 示例 for (int i = 1; i <= 5; i++) { System.out.println("我错了"); syso(i); }
  • 执行流程
    1. 先执行初始化语句
    2. 然后执行判断条件语句
      • 如果为true, 则执行循环体语句
        • 循环体语句执行完毕后, 执行控制条件语句
        • 从步骤2重复
      • 如果为false, 则for循环结束
  • 初始化语句只能有一句吗?
    • 只能有一句
    • 但注意, 一句可以初始化多个变量: int i = 0, j = 1, k = 1;
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
// 初始化多个变量来控制循环的情况 for(int i = 0, j = 10; i < 10 && j > 5; i++, j--) { System.out.println(i + ", " + j); } // 输出结果 i=0, j=10 i=1, j=9 i=2, j=8 i=3, j=7 i=4, j=6
  • 注意: 初始化语句在循环中只执行一次

while循环格式和基本使用

  • while循环的格式:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// while普通格式 while(判断条件语句) { 循环体语句; } // 普通格式示例 while(i < 100) { syso(i); } ----- // while扩展版格式 初始化语句; while(判断条件语句) { 循环体语句; 控制条件语句; } // 扩展版示例 int i = 0; while(i < 100) { syso(i); i++; }
  • while循环的执行流程:
    • 先执行关系表达式
      • 如果关系表达式为true, 则执行循环体
        • 循环体执行完后, 继续执行关系表达式
      • 如果关系表达式为false, 则循环结束
  • while循环和for循环的相互转换:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
// while int i = 0; while(i < 100) { syso(i); i++; } // for for(int i = 0; i < 100; i++) { syso(i); }

do…while循环格式及基本使用

  • 语句格式:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
// 普通格式 do { 循环体语句; } while(判断条件语句); // 扩展格式: 初始化语句; do { 循环体语句; 控制条件语句; } while(判断条件语句);
  • 执行流程:
    1. 执行初始化语句
    2. 执行循环体语句
    3. 执行控制条件语句
    4. 执行判断条件语句, 看是true还是false
      • 如果是false, 则结束循环
      • 如果是true, 回到2继续执行循环体语句

for, while, do…while三种循环的区别

  • 区别

    • do…while: 至少执行一次循环体
    • for, while: 必须判断条件成立, 才可以执行循环体
  • for循环的初始化语句的作用域: for的大括号内

  • 思考:

    • for的初始化表达式能否定义在for循环外? 可以, 定义在for循环前
    • for循环的()之内的三个表达式能否有多条? 可以

控制循环语句

  • 2个控制循环语句:
    • break: 直接结束循环, 或switch语句
    • continue: 结束本次循环, 继续执行下一次

break跳转控制语句的概述和基本使用

  • break的使用场景: 不能单独使用, 必须用于switch或循环中
  • break的作用:
    1. 在switch语句中, 用于结束case
    2. 在循环中, 用于结束所在的循环

continue跳转控制语句

  • continue的使用场景: 循环中
  • continue的作用: 结束本次循环, 继续下一次的循环

控制跳转语句分析


扩展

  • switch语句的case穿透
    • 如果switch的case语句中没有break, 则会继续执行下一个case的代码, 这称为case穿透
    • case穿透有时会导致代码出现问题, 但有时我们也利用case穿透简化代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int a = 2; switch (a) { case 1: System.out.println("进入1"); break; case 2: System.out.println("进入2"); case 3: System.out.println("进入3"); break; } 会输出: 进入2 进入3
  • if语句不写大括号的格式
    • 当if语句不写大括号时, 只有if语句后的第一条语句算作if语句的语句体, 其余不算
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 示例 if (false) { System.out.println("这条语句不会被执行"); System.out.println("这条语句不会被执行"); } // 去掉大括号后 if (false) System.out.println("这条语句不会被执行"); System.out.println("这条语句会被执行"); // 相当于 if (false) { System.out.println("这条语句不会被执行"); } System.out.println("这条语句会被执行");
  • while语句, for语句不写大括号的格式
    • 当语句不写大括号时, 只有语句后的第一条语句算作语句的语句体, 其余不算
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// 示例 while (false) { System.out.println("这条语句不会被执行"); System.out.println("这条语句不会被执行"); } // 去掉大括号后 while (false) System.out.println("这条语句不会被执行"); System.out.println("这条语句会被执行, 且只执行1次"); // 相当于 while (false) { System.out.println("这条语句不会被执行"); } System.out.println("这条语句会被执行, 且只执行1次"); //------------------ // for示例 for (int i = 0; i < 1; i++) { System.out.println("这条语句不会被执行"); System.out.println("这条语句不会被执行"); } // 去掉大括号后 for (int i = 0; i < 1; i++) System.out.println("这条语句不会被执行"); System.out.println("这条语句会被执行, 且只执行1次"); // 相当于 for (int i = 0; i < 1; i++) { System.out.println("这条语句不会被执行"); } System.out.println("这条语句会被执行, 且只执行1次");
  • for循环哪些语句可以省略:
    • 如果变量在for循环外已经声明, 则初始化语句可以省略
    • 判断条件语句可以省略, 相当于不停止
    • 控制条件语句可以省略, 相当于不改变for循环中的变量
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
// 外部声明的变量, 作用域如果包含了for循环, 也是可以在for循环中直接使用的 int i = 0; for (; i < 10; i++) { // ... } // 将for循环修改为死循环 for (;;) { // 死循环 } for (;;); // 连循环体都没有的死循环
复制代码
1
2
3
4
5
6
7
// while也可以死循环 while (true) { // 死循环 } while (true); // 没有循环体的死循环

总结

  • 流程控制语句
    • 顺序结构
    • 选择结构: 用于根据不同条件执行不同的代码
      • if语句
        • 3种格式
        • else…if, else语句可以省略
      • switch语句
        • case穿透
        • switch表达式允许的数据类型:
          • byte, short, char, int
            • 都是可隐式转换为int的类型, 因为byte, short, char可以隐式转换为int, 所以也可以使用
          • JDK5起可以是枚举类型
          • JDK7起可以是String
          • 小括号中可以是常量, 也可以是变量
        • case后面的值:
          • 用来和表达式的值进行匹配
          • 值只能是常量
          • 值的类型应该和switch小括号中值的类型一致
        • break: 中断
        • default: 当所有case都不匹配时, 执行default
      • if语句适用于有范围的场景, 或者具体值的场景
      • switch语句适用于具体值场景, 不适用于范围的场景
    • 循环结构: 用于在满足循环条件的情况下, 重复执行某些代码
      • for循环
        • 适用于知道循环次数的场景
      • while循环
        • 适用于不知道循环次数的场景
        • 至少执行0次循环体
      • do…while循环
        • 适用于不知道循环次数的场景
        • 至少执行1次循环体
      • 循环控制语句: 控制循环的跳过或结束
        • break
          • 适用场景: switch语句, 循环
          • 作用: 结束switch语句或所在循环
        • continue
          • 适用场景: 循环
          • 作用: 结束本次循环, 继续下次循环

if语句格式

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 格式1 if (关系表达式) { 语句体; // 关系表达式为true时执行 } // 格式2 if (关系表达式) { 语句体1; // 关系表达式为true时执行 } else { 语句体2; // 关系表达式为false时执行 } // 格式3 if (关系表达式1) { 语句体1; // 关系表达式1为true时执行 } else if (关系表达式2) { 语句体2; // 关系表达式2为true时执行 } ... } else { 语句体n; // 以上关系表达式都为false时执行 }

switch语句的格式

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 格式 switch (表达式) { case1: // 当表达式的值为值1时执行 语句体1; break; case2: // 当表达式的值为值2时执行 语句体2; break; ... default: // 当表达式的值不能匹配上面的case时执行 语句体n; break; }

for循环格式

复制代码
1
2
3
4
5
6
7
8
9
10
// 格式 for (初始化语句; 判断条件语句; 控制条件语句) { 循环体语句; } // 示例 for (int i = 1; i <= 5; i++) { // 获取1~5的数值 }

while循环格式

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 普通格式 while (判断条件语句) { 循环体语句; } // 扩展格式 初始化语句; while (判断条件语句) { 循环体语句; 控制条件语句; } // 示例 int i = 1; while (i <= 5) { syso(i); // 打印1~5 i++; }

do…while格式

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 普通格式 do { 循环体语句; } while (判断条件语句); // 扩展格式 初始化语句; do { 循环体语句; 控制条件语句; } while (判断条件语句); // 示例 int i = 1; do { syso(i); i++; } while (i <= 5);

往期知识:Java运算符那些事(最全知识点)

最后

以上就是细心八宝粥最近收集整理的关于【Java】java控制语句的那些事(最全知识点)流程控制语句的全部内容,更多相关【Java】java控制语句内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部