Java学习笔记2.——流程控制语句

本文详细介绍了Java中的流程控制语句,包括顺序结构、分支结构(if的各种格式和switch语句)、循环结构(for、while和do...while),以及它们的使用场景和区别。
摘要由CSDN通过智能技术生成

Java学习笔记2.——流程控制语句



前言

流程控制语句:通过一些语句,控制程序的执行顺序
所以的代码最后都要优化,最简洁。
顺序结构、分支结构、循环结构


一、顺序结构

默认的执行流程,按照代码的先后顺序,从上到下执行

二、分支结构

1.if结构

1.if的第一种格式

代码如下(示例):

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

如果关系表达式为true,则执行语句体;
如果关系表达式为false,则不执行语句体,按照顺序执行大括号外面的语句

注:单条件判断
如果表达式本身就是布尔类型的变量可以不用比较,直接填变量;
语句体只有一句代码的时候可以不用大括号,建议使用大括号

2.if的第二种格式

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

双条件判断

3.if的第三种格式

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

多条件判断

else if 和if的区别

if执行完后后面的代码依次执行,如果有多个if语句则从上到下依次执行。
else if 是某次判断之后就不需要判断下面的了,直接跳过整个else if语句块。

2.switch语句

switch(表达式){
	case1:
		语句体1;
		break;
	case2:
		语句体2;
		break;
		...
	default:
		语句体n+1;
		break;
}

执行流程:
1.首先计算表达式的值,表达式最后计算出来一定是一个具体的值。(计算的值不能是未赋值的,也不能在表达式里定义赋值)
2.依次和case后面的值进行比较,有对应的值则执行相应的语句,执行遇到break就会结束switch
3.如果表达式的值与case的值不匹配,就会执行default里面的语句体,然后结束整个switch

知识点1:格式说明

1.表达式:(将要匹配的值)取值为byte、short、int、char、JDK5以后可以是枚举,JDK7以后可以是String。
2.case:case(空格)值,表达式的值就是与这个值进行比较,所以他们的数据类型一致,可以隐式转换的,强制转换就没有必要了,又不是计算题。
3.case 后面的值不能是变量,只能是字面量,那定义的常量肯定可以。
4.case 的值不能重复
5.break:表示中断,结束switch语句。也就是说如果没有break则会继续向下执行,会出现case穿透,为什么下面的case不匹配还能被执行,因为字节码中条件和代码块是分开的,break相当于goto我是从这里看到的关于case穿透的本质
6.default:所有情况都不匹配时就会执行这个,和else相似,根据if的else可以选择不写,那我们也可以选择不写default
7.break和default不一样的在于是:default只能出现在最后一个,break可以出现多个位置

知识点2:Switch新特性

JDK12之后switch可以这样写,一行代码时大括号可以省略。

public class Switch {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入今天是周几,如果是周一则输入1");
        int week = sc.nextInt();
        switch (week){
            case 1 -> System.out.println(1);
            case 2 -> System.out.println(2);
            case 3 -> {
                System.out.println(3);
            }
            case 4 -> System.out.println(4);
            case 5 -> System.out.println(5);
            case 6 -> System.out.println(6);
            case 7 -> System.out.println(7);
            default -> System.out.println(0);
        }
    }
}

3.知识点switch和if的使用场景

都适合使用很多条件时
(1)if第三种格式:一般用于对范围的判断,不是确切的值对应
(2)switch:把有限个数列举出来,一一比对,是确切的值

三、循环结构

1.for循环

格式如下:

	for(初始化语句;条件判断语句;条件控制语句){
		循环体语句;
}

格式注意:

1.初始化只执行一次,可以在括号里初始化,也可以在括号外面初始化,不能在大括号里面初始化
2.条件判断语句,为true执行,为false不执行循环也一般意味着循环结束或者一开始你就写错了
3.条件控制语句:防止出现死循环,所以需要控制条件按规律变化,可以写在大括号里面进行控制

使用循环需要注意的条件:

1.找出开始条件即初始化语句
2.找出结束条件,这样才能确定条件控制的要求
3.有重复的语句或者条件使用这个

例子:求和 求1-5之间的和

	public class Circulate {
    public static void main(String[] args) {
//        求1-5之间的和  需要一个变量来装这个和
        int sum = 0;
        //分析1:开始条件1,结束条件5,控制语句自增
        for (int i = 1;i <= 5 ;i++){
            //分析2:求1-5之间的和应该就是累加和,从1累加到5
            sum += i;
        }
        System.out.println(sum);
    }
}

执行顺序:

1.i=1<=5,所以sum=0+1=1,然后i+1=2
2.i=2<=5,so sum=1+2=3,然后 i+1=3
3.i=3<=5,so sum=3+3=6,然后 i+1=4
4.i=4<=5,so sum=6+4=10,然后i+1=5
5.i=5<=5,so sum=10+5,然后i+1=6
6.i=6<=5不成立,所以退出循环,此时i=6,一共六次循环
因为sum在循环体里定义的,不会被重新初始化可以进行累加,在循环体外面的sum只是被循环一次加一次,不会被初始化,进来之后也还是上次累加后的值

2.while

格式

	初始化语句;
	while(条件判断语句){
	循环体;
	条件控制语句;
}

执行顺序还是和上面是一样的

初始化语句执行一次
条件判断,为true运行循环体,条件控制语句
条件判断,为false不运行循环体而是执行大括号下面的语句

知识点4.for和while的区别

1.for循环中,控制循环的变量归属于for循环的语法结构,for循环结束后,就不能再次被访问到了
2.while:的控制循环变量不归属其语法结构,while结束后还可以继续使用变量
3.使用条件

for循环 :知道循环次数或循环的范围
while循环:只知道循环的结束条件
(知道结束条件,只要可以判断就行,知道初始条件)

在这里来做个小练习

package itheima;

import java.util.Scanner;

public class CirculateTest2 {
    public static void main(String[] args) {
        //需求:给你一个整数x。
        //如果×是一个回文整数,打印true ,否则,返回false 。
        //解释:回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121是回文,而123不是。
        //分析1.一个整数x,所以设定一个从键盘录入的变量
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        //分析2.判断是不是回文数,根据定义所以末位的数排列到第一位也是没有问题的,所以倒数第二位换到第二位也是没有问题的。因此循环体拼接
        //分析3:a为个位数时相除就等于0,这个时候就是结束条件,因为此时所有的数字都能回完了
        int hui = 0;
        //保存变量,因为a的值会变
        int temp = a;
        while ( a != 0 ){
            hui *=10;
            hui += a%10;
            a /= 10;
        }
        if (hui == temp){
            System.out.println(hui+"是一个回文数");
        }

    }
}

3.do…while

格式

初始化语句;
do{
循环体;
条件控制语句;
}(条件判断语句)

先执行后判断

总结

流程控制语句,是控制代码运行流程的语句,一个有三种流程语句。顺序,分支(if的三种结构和switch),循环(三种,for,while,do…while)。
if的关系表达式是一个布尔值,switch的是一个确切的值所以不能是布尔,一共有6种类型,break相当于编译里面的goto所以没有break就会导致case穿透
for用在知道次数或者范围时,while用在知道判断条件时。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

专注技术200年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值