流程控制(Java)

1.三种执行结构

1.顺序结构:代码从上到下,依次执行,这种执行结构是程序运行的基本结构。

2.分支结构:代码执行到了某一个节点,遇到了多种继续执行的可能性,选择其中的一种继续向下执行。

3.循环结构:某一段代码因为某种条件,需要重复执行多次。

我们通过指定的语法,来控制程序的执行流程,这种语法就叫流程控制语法

 2.if相关语法

(1)if-else基础语法

if(boolean类型的变量或者表达式) {

       //代码块       //条件满足执行

}else{    //有时也可以不写else部分

        //代码        //条件不满足

}

//.......后续代码..........

(2)多分支的情况:

if (condition1) {
   // code1
}
else if (condition2) {
   // code2
}
else if (condition3) {
   // code3
}
...
else {

   }

(3)特别写法

if(条件)
   System.out.println("")    //是只有一个语句的情况,否则不可以省略括号
   else
      System.out.println("")  

3.switch-case

 语法:

switch(变量){

        case  值1:

                        //代码块

        case  值2:

                        //代码块

        case  值3:

                        //代码块

        ..............:

       default:

}

执行逻辑:捕获变量的值,如果变量的值和某一个case之后的值能够匹配上,则执行这个case后面的代码。

注意:在switch语句中,存在穿透性。
    如果变量varibale的值,和某一个case能够匹配上,则执行从这个case开始,往后所有的代码。这个过程会跳过后面的case验证。
如果不需要穿透性,需要使用关键字  break

如代码演示:没有break的

public class _06SwitchCaseDemo {
    public static void main(String[] args) {
        // 随机一个整数:[0,4]
        int num= (int)(Math.random()*5);
        switch (num){
            case 0:
                System.out.println("随机的是0");
            case 1:
                System.out.println("随机的是1");
            case 2:
                System.out.println("随机的是2");
            case 3:
                System.out.println("随机的是3");
            default:
                System.out.println("随机的是4");
        }
        System.out.println("---main方法结束---");
    }
}

 随机到的数是2,但是还在继续向下执行下面的代码

switch-case的一个例子:

 需求:输入一个年份和一个月份,并判断这一年是闰年还是平年,并且输出该月份有几天

样式:2024是闰年,8月有31天

public class Exercise1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入年份:");
        int year =sc.nextInt();
        System.out.println("输入月份");
        int  month = sc.nextInt();

        if (month<1||month>12){
            System.out.println("输入的月份不合法");
            return;//
        }
        String str="";
        boolean flag = false;
        if (year%4==0&&year%100!=0||year%400==0){
            str = "闰年";
            flag = true;
        }else {
            str = "平年";
        }
        int   days = -1;
        switch (month){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days = 31;break;
            case 4:
            case 6:
            case 9:
            case 11:
                days = 30;break;
            case 2:
                if(flag){
                    days = 29;
                }else {
                    days = 28;
                }
        }
        System.out.println(year+"是"+str+","+month+"是"+days+"天");
        sc.close();
    }
}

if 和 switch 的应用场景:
 1.如果分支的条件,是一个范围,使用if
 2.如果分支的条件,是一个值,可以使用if,也可以使用switch

4.for循环 

循环的三要素:

1.循环因子的声明和初始化

2.循环条件

3.循环步长:循环因子向着循环结束的方向而改变

 for循环的语法:for(①循环因子的声明和初始化;②循环条件;③步长){

                                //循环体④

                           }

执行逻辑:① --------> ②  ----条件成立---->④-------->③-------->②---条件成立----->④-------->.......

                      -------->③-------->②---条件不成立----->结束循环

for循环的其他写法:

 1. for循环的小括号里除了分号,其他都可以省略,但是循环条件省略,默认就是true。

        for (;;) {
            System.out.println("Hello World");
        }

 循环三要素都省略,循环条件省略就相当于true,条件一直成立,即形成死循环。

2. 循环因子的声明和初始化,可以写在for循环之前

        int i = 1;
        for(;i<10;i++){
            System.out.println("i = " + i);
        }

3. 循环步长可以写在循环体中

        for(int m = 0;m<10;){
            System.out.println("m = " + m);
            m+=3; //循环步长
        }

4.循环体只有一行代码时,花括号可以不写。

 5.while循环

 语法:  while(循环条件){ 

                         循环体

                 }

while循环的循环因子的声明和初始化写在while的前面,循环步长写在循环体中。

while循环运用的一个实例:猜数游戏

/**猜数字游戏的模拟*/
        Scanner sc = new Scanner(System.in);
        // 一个同学在手机上输入的数字,开始猜这个数字
        int answer = (int)(Math.random()*10);
        while(true){
            System.out.println("请继续猜:");
            int guess = sc.nextInt();
            if(guess == answer){
                System.out.println("猜对了");
                break; //打断,跳出,结束
            }else if(guess > answer){
                System.out.println("猜大了,请往小猜");
            }else{
                System.out.println("猜小了,请往大猜");
            }
        }

6.do-while循环 

语法: 

        do{ 

                 循环体

         }while(循环条件); (分号不能忘写)

特点: 先执行一次循环体,然后再判断循环条件是否成立, 循环条件成立,再执行循环体。

 总结:for,while,do-while的应用场景或者区别

1. for循环适合知道循环次数的场景 

2. while循环适合不知道循环次数的场景

3. 适合先执行循环体,再判断条件的场景。比如 做一件事,直到什么时候结束

 7.break和continue关键字

 (1)break关键字

break: 在循环结构中,表示打断,跳过,结束循环。继续向下执行后续代码。

注意:break只能结束其所在的那一层循环结构

 (2)continue关键字

 continue:在循环结构中表示中止打断本次循环(结束这一次循环),继续下一次的循环。

下一次从循环是从循环步长开始执行的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值