程序控制结构

1. 程序流程控制介绍

在程序中,程序运行的流程控制决定程序是如何执行的,主要有三大流程控制语句。
1)顺序控制 2)分支控制 3)循环控制

2. 程序控制

程序自上而下,逐行进行没有跳转和判断
image

3 分支控制 if-else

3.1 分支控制 if-else 介绍

让程序有选择的的执行,分支控制有三种

1)单分支 if

if(条件表达式){
    执行代码块;(可以有多条语句.)
}
//说明: 当条件表达式为ture 时,就会执行{}的代码。如果为false,就不执行.特别说明,如果{}中只有一条语句,则可以不用 (},建议写上 {}

image

2)双分支 if-else

if(条件表达式){
    执行代码块1;
}
else{
    执行代码块2;
}
//说明: 当条件表达式成立,即执行代码块1,否则执行代码块2.如果执行代码块只有一条语句,则{}可以省略,否则,不能省略

image

3)多分支 if-else if -....-else

if (条件表达式1){
    执行代码块1;
}
else if (条件表达式2){
    执行代码块2;
}
......
else{
    执行代码块n;
}
/*
特别说明: (1)多分支 可以没有 else ,如果所有的条件表达式都不成立,则一个执行入口都没有

(2)如果有 else,如果所有的条件表达式都不成立,则默认执行else代码块*/

image


Scanner 的使用:

引入 Java.util.Scanner
新建变量 Scanner myScanner = new Scanner(System.in);

int类型使用 int age = myScanner.nextInt();
char类型使用 char name = myScanner.next().charAt(0);


4 嵌套分支

4.1 基本介绍

在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支,外面的分支结构称为外层分支。建议: 不要超过 3 层 (可读性不好)

4.2 基本语法
if(){
    if(){
        //if-else
    }else{
        //if-else
    }
}

5 switch 分支结构

5.1 基本语法
if(条件表达式){
    执行代码块;(可以有多条语句.)
}
//说明: 当条件表达式为ture 时,就会执行{}的代码。如果为false,就不执行.特别说明,如果{}中只有一条语句,则可以不用 (},建议写上 {}
5.2 流程图

image

5.4 switch 注意事项和细节讨论
  1. 表达式数据类型,应和case 后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是 int

  2. switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum[枚举],String)

double c = 1.1;
switch(c){//错误
    case 1.1;//错误
        System.out.println("ok3");
        break;
}
  1. case子句中的值必须是常量,而不能是变量

  2. default子句是可选的,当没有匹配的case时,执行default

  3. break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break;

5.6 switch和if的比较

  1. 如果判断的具体数值不多,而且符合 byte、short 、int、char,enum[枚举],String这6种类型。虽然两个语句都可以使用,建议使用 swtich 语句。 2)其他情况:对区间判断,对结果为 boolean 类型判断,使用if,if的使用范围更广

6 for 循环控制(! ! !)

6.1 基础语法及说明
for(循环变量初始化;循环条件;循环变量迭代){
    循环操作(可以多条语句);
}
说明
  1. for 关键字,表示循环控制

  2. for 有四要素:

  • (1)循环变量初始化
  • (2)循环条件
  • (3)循环操作
  • (4)循环变量迭代
  1. 循环操作 , 这里可以有多条语句,也就是我们要循环执行的代码

  2. 如果 循环操作(语句) 只有一条语句,可以省略 {}, 建议不要省略

6.2 for循环执行流程分析

image

6.3 注意事项和细节说明

1)循环条件是返回一个布尔值的表达式

2)for(;循环判断条件;) 中的初始化和变量迭代可以写到其它地方(作用域不同),但是两边的分号不能省略。

3)循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开

7 while 循环控制

7.1 基本语法
while(循环条件){
    循环体(语句);
    循环变量迭代;
}

说明:

1)while 循环也有四要素

2)只是四要素放的位置和for不一样

7.2 while 循环执行流程分析

image

7.3 注意事项和细节说明

1)循环条件是返回一个布尔值的表达式

2)while 循环是先判断再执行语句

8 do..while 循环控制

8.1 基本语法

   do{
    循环体(语句);
    循环变量迭代;
}while(循环条件);
}
8.2 说明:

do while 是关键字

也有循环四要素, 只是位置不一样

先执行,再判断,也就是说,一定会至少执行一次

最后 有一个 分号 ;

while 和 do..while 区别举例: 要账

8.3 do...whie 循环执行流程分析

1)流程图
image

8.4 注意事项和细节说明

1)循环条件是返回一个布尔值的表达式

2)do..while 循环是先执行,再判断, 因此它至少执行一次

8.5 练习题
import java.util.Scanner;
public class DoWhileExercise02{
    public static void main(String[] args) {
        //如果李三不还钱,则老韩将一直使出五连鞭,直到李三说还钱为
        //[System.out.println("老韩问:还钱吗?y/n")] do...while .. //
        //化繁为简
        //(1) 不停的问还钱吗?
        //(2) 使用 char answer 接收回答, 定义一个 Scanner 对象
        //(3) 在 do-while 的 while 判断如果是 y 就不在循环
        Scanner myscanner = new Scanner(System.in);
        char answer = ' ';
            do{
                System.out.println("老韩问:还钱吗?y/n");
                answer = myscanner.next().charAt(0);
                System.out.println("回答" + a);
            }while(a != 'y');
            System.out.println("李三还钱了");
    }
}

9 多重循环控制(难点! 重点!)

9.1 介绍

1)将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while 均可以作为外层循环和内层循环。

【建议一般使用两层,最多不要超过 3 层, 否则,代码的可读性很差】

2)实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为 false 时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环[

3)设外层循环次数为 m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次。

9.2 多重循环执行步骤分析:
//请分析 下面的多重循环执行步骤, 并写出输出 => 韩老师的内存分析法
//双层 for MulFor.java
for(int i = 0; i < 2; i++) { //先思考
    for( int j = 0; j < 3; j++) {
        System.out.println("i=" + i + j=" + j);
    }
}

image

10 跳转控制语句-break

10.1 看下面一个需求

随机生成 1-100 的一个数,直到生成了 97 这个数,看看你一共用了几次?

提示使用 (int)(Math.random() * 100) + 1
思路分析:

循环,但是循环的次数不知道. -> break ,当某个条件满足时,终止循环

通过该需求可以说明其它流程控制的必要性,比如 break

10.2 基本介绍:

break 语句用于终止某个语句块的执行,一般使用在 switch 或者循环[for , while , do-while]中

10.3 基本语法
{   ……
    break; 
    ……
}
10.4 以 while 使用 break 为例,画出示意图

image

10.5 快速入门

image

5.10.6 注意事项和细节说明:

image

11 跳转控制语句-continue

11.1 基本介绍:

1)continue 语句用于结束本次循环,继续执行下一次循环。

2)continue 语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 , 这个和前面的标签的

使用的规则一样

11.2 基本语法

{   ……
    continue;
    ……
}
11.3 以 while 使用 continue 为例,画出示意图

image

11.4 快速入门案例

image

12 跳转语句-return

return 使用在方法,表示跳出所在的方法,在讲解方法的时候,会详细的介绍,这里我们简单的提一下。注意:如果 return 写在 main 方法,退出程序.
image

posted @   Icy_yayaya  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
点击右上角即可分享
微信分享提示