Java语言基础(三)之流程语句

概述
      在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果 有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现 我们要完成的功能。

流程语句分类: 1、顺序语句 2、选择语句 3、判断语句 4、循环语句

1、顺序语句的概述
      按照顺序,从上往下依次执行
例如:

public static void main(String[] args) {
        //顺序执行,根据编写的顺序,从上到下运行
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
    }

运行结果:

1
2
3

2、选择语句 switch
2.1 switch语句格式:

switch(表达式){       case 常量值1:
        //语句体1;
        break;
      case 常量值2:
        //语句体2;
        break;
        …
      default:
        //语句体n+1;
        break; }

2.2 执行流程
      首先计算出表达式的值
      其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
      最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
在这里插入图片描述
代码实例:

int weekday = 6;
        switch (weekday) {
            case 1:
                System.out.println("星期 1");
                break;
            case 2:
                System.out.println("星期 2");
                break;
            case 3:
                System.out.println("星期 3");
                break;
            case 4:
                System.out.println("星期 4");
                break;
            case 5:
                System.out.println("星期 5");
                break;
            case 6:
                System.out.println("星期 6");
                break;
            case 7:
                System.out.println("星期 7");
                break;
            default:
                System.out.println("输入有误!");
                break;
        }

运行结果:

星期 6

      在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运 行,直到遇到break,或者整体switch结束。
      重点(笔试常见)switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。
3、判断语句 if
3.1 if语句第一种格式:

if(关系表达式){
      语句体;

3.1.1 执行循环体

首先判断关系表达式 ,看其结果是true还是false ,如果是true就执行语句体 ,如果是false就不执行语句体.
在这里插入图片描述

代码实例:

public static void main(String[] args) {
        int a = 20;
        int b = 10;
        if (a == b) {
            System.out.println("a == b");
        }
        if (a != b) {
            System.out.println("a != b");
        }

    }

运行结果:

a != b

if语句第二种格式:if–else(重要)
3.2.1 if语句第二种格式:

if(关系表达式) {
      语句体1;
}else {
      语句体2;
}

3.2.2 执行流程:

首先判断关系表达式 ,看其结果是true还是false , 如果是true就执行语句体1 ,如果是false就执行语句体2
在这里插入图片描述

代码实例:

public static void main(String[] args) {
        int a = 20;
        int b = 10;
        if (a == b) {
            System.out.println("a == b");
        } else {
            System.out.println("a != b");
        }
    }

if语句第二种格式:if–else(很重要)
1.3.1 if语句第三种格式:

if (判断条件1) {
      执行语句1;
} else if (判断条件2) {
      执行语句2;
}
       … …
}else if (判断条件n) {
      执行语句n;
} else {
      执行语句n+1;
}

3.2.2 执行流程:

首先判断关系表达式1,看其结果是true还是false, 如果是true就执行语句体1,
如果是false就继续判断关系表达式2,看其结果是true还是false ,如果是true就执行语句体2,
如果是false就继续判断关系表达式…看其结果是true还是false … 如果没有任何关系表达式为true,就执行语句体n+1。
在这里插入图片描述

代码实例:

public static void main(String[] args) {
        System.out.println("输入一个数:");
        Scanner scanner = new Scanner(System.in);
        int c = scanner.nextInt();
        if (c > 0 && c < 20) {
            int d = c++;
            System.out.println("d的值是:" + d);
        } else if (c < 0) {
            int d = c--;
            System.out.println("d的值是:" + d);
        } else if (c > 20) {
            int d = ++c;
            System.out.println(c--);
        }
    }

运行结果:

输入一个数:
5
d的值是:5

3.3、if语句和三元运算符的互换
在某些简单的应用中,if语句是可以和三元运算符互换使用的。

public static void main(String[] args) {
        int a = 10;
        int b = 20;
        //定义变量,保存a和b的较大值
        int c;
        if (a > b) {
            c = a;
        } else {
            c = b;
        }
        //可以上述功能改写为三元运算符形式
        c = a > b ? a : b;
    }

4、循环语句
4.1、循环语句 for
格式:

for(初始化表达式①; 布尔表达式②; 步进表达式④){
      循环体③
}

1.1 执行流程

执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环条件所涉及变量的变化情况
在这里插入图片描述

代码实例:

使用循环,计算1-100之间的偶数和。

public static void main(String[] args) {
        //1.定义一个初始化变量,记录累加求和,初始值为0
        int sum = 0;
        //2.利用for循环获取1‐100之间的数字
        for (int i = 1; i <= 100; i++) {
            //3.判断获取的数组是奇数还是偶数
            if (i % 2 == 0) {
                //4.如果是偶数就累加求和
                sum += i;
            }
        }
        //5.循环结束之后,打印累加结果
        System.out.println("sum:" + sum);
    }

sum:2550

4.2、循环语句2 while
4.2.1 格式:

初始化表达式①
while(布尔表达式②){
      循环体③
      步进表达式④
}

4.2.2 执行流程

执行顺序:①②③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句。
④循环后,循环变量的变化情况。
在这里插入图片描述

代码实例:

while循环输出10次HelloWorld。

public static void main(String[] args) {
        //while循环实现打印10次HelloWorld
        //定义初始化变量
        int i = 1;
        //循环条件<=10
        while (i <= 10) {
            System.out.println("HelloWorld");
            //步进
            i++;
        }
    }

4.3、循环语句1 do…while
4.3.1格式:

初始化表达式①
do{
      循环体③
      步进表达式④
}while(布尔表达式②);

4.3.2 执行流程

执行顺序:①③④>②③④>②③④…②不满足为止。
①负责完成循环变量初始化。
②负责判断是否满足循环条件,不满足则跳出循环。
③具体执行的语句
④循环后,循环变量的变化情况
在这里插入图片描述

代码实例:

while循环输出10次HelloWorld。

public static void main(String[] args) {
        int x = 1;
        do {
            System.out.println("HelloWorld");
            x++;
        } while (x <= 10);
    }

4.4、do…while总结

do…while循环的特点:无条件执行一次循环体,即使我们将循环条件直接写成false,也依然会循环一次。这样的
循环具有一定的风险性,因此初学者不建议使用do…while循环。
      
do…while和while的区别(主要就是while先判断后执行,do…while先执行后判断)。

4.5 for循环和while循环的区别(了解)

1、控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。
      
2、在已知循环次数的时候使用推荐使用for,循环次数未知的时推荐使用while。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱鱼的可爱喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值