流程控制语句

1.顺序结构

程序默认,由上到下

2.分支结构

2.1 if语句

2.1.1第一种格式 if
格式:
  if (判断条件){    //判断条件为true则执行语句;
    语句;
  }
2.1.2 第二种格式 if…else
格式:
  if (判断条件){   
    语句;  //为true执行;
  } else {
    语句; //为false执行;
  }
2.1.3 第三种格式 if…else if …else
格式:
  if(判断条件1){
    语句体1} else if(判断条件2){
    语句体2} 
....
  else{
    语句体n;
  }

2.2 switch语句

格式:
  switch(表达式){
      case1:
        		语句1breakcase2:
        		语句2break...
      default:
      		语句体n;
          break}
//通过匹配输入进行输出
Scanner in = new Scanner(System.in);
int week = in.nextInt();
switch(week){
  case 1:
    	System.out.println("1")
        break;
        ....
}
2.2.1 case穿刺
  1. 产生:若switch语句中,case省略了break语句,就开始穿刺。
  2. 现象:当case开始穿刺,后续的case不再匹配,内部的语句都会执行。当遇见break或switch整体执行完毕,才会结束。
  3. 使用场景:当多个匹配条件的语句都相同时,可以使用穿刺。
//jdk14简化
num = 2;
switch(num){
  case 1,2,3,4,5:  //支持多个case标签
    sout("工作日");
  case 6,7:
}
//jdk17简化
num = 2;
switch(num){
    case 1,2,3,4,5 -> {sout("工作日")}
    case 6,7 -> {sout("休息日")}
}
2.2.2 if与switch

if:用于范围的判断;

switch:用于固定值判断;

3.循环结构

3.1 for 循环

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

执行流程:

  1. 执行初始化语句;
  2. 执行条件判断语句,true则执行,false则循环结束;
  3. 执行循环体语句;
  4. 执行条件控制语句;
  5. 回到 2.

3.2 while循环

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

执行流程:

  1. 执行初始化语句;
  2. 执行条件判断语句,true则继续执行,false则循环结束;
  3. 执行循环体语句;
  4. 执行条件控制语句;
  5. 回到2.

注意点:

  1. While 与 for的不同点:while的初始化语句需要在外部提前定义。for则是在参数中定义。
  2. 若明确循环次数,一般可采用for循环方法;若不清楚循环次数,一般可采用while循环方法。

3.3 do…while循环

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

执行流程:

  1. 执行初始化语句;
  2. 执行循环体语句;
  3. 执行条件控制语句;
  4. 执行条件判断语句,true则继续执行,false则循环结束;
  5. 回到2.

do…while 循环,至少循环一次。

3.4 三种循环的区别

  1. for、while先判断条件,再执行循环体;do…while先执行循环体,再判断;

  2. 条件控制语句所控制的自增变量:

    1. for循环,由于归属于for语法结构中,在for循环结束后,不能再被访问;
    2. while循环,由于不属于while语法结构中,在while循环结束后,变量能被继续访问
    3. 注意:for 与 while本质上没有区别
    for(int i=0;i<5;i++){}//此种形式下,i不可在外部被访问;
    --------------
    int i=0;     //初始化语句可提到语句外;
    for(;i<5;){  //与while语句基本没差别
      i++;  //条件控制语句可放在结构内;
    }
    sout(i);//此种形式下,i可访问;
    

3.5 死循环

3.5.1 for 死循环
for(;;){
  System.out.println("Stop!");
}
3.5.2 while 死循环
while(true){
  System.out.println("Stop!");
}
3.5.3 do…while 死循环
do{
  System.out.println("Stop!");
}while(true);
System.out.println("Finishi"); //此语句不可到达,因为do..while为死循环

4. 跳转控制语句

4.1 continue语句

  1. 跳过某次循环,开始下一次的循环;
  2. 基于条件控制,在循环内部使用;
for (int i=0;i<=10;i++){
  if (i%2==0){
    continue;
  } else{
    System.out.println(i);
  }
}

4.2 break语句

  1. 作用:停止当前层级的循环体的执行;
  2. 基于条件控制,break只能在循环、switch中使用;
//for
for(int i=0;i<10;i++){
  if(i ==5){
    break;   //当i==5时,结束循环
  }else{
    System.out.println(i);
  }
}
//switch
Scanner in = new Scanner(System.in);
int num = in.nextInt();
switch(num){
  case 1:System.out.println("1");
    break;
    ...
}

5.标号

标记循环,可使用break 标号跳出指定循环;

标号名自定;

格式:
  标号名:while(true){
  switch(表达式){
    case 1:
      break 标号名;
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值