随堂笔记——day03

这篇博客详细介绍了编程中的流程控制语句,包括顺序结构、分支结构(if, switch)和循环结构(for, while, do-while)。讲解了各个结构的语法、执行流程及应用场景,并通过示例加以说明,帮助读者深入理解。" 136288060,9609098,AUTOSAR:汽车电子系统的标准化软件架构,"['汽车电子', '软件架构', '汽车标准', 'MATLAB', 'DaVinci']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、流程控制语句

  • 顺序结构

顺序结构是程序中最基本的控制流程,没有特定的语法结构,按照代码的先后顺序,一次执行成续重大多数的代码都是这样执行的。

  • 分支结构

1.if语句

     格式: if(关系表达式){

                       语句体1;

                  }else{

                        语句体2;

                  }

     执行流程:

           1)首先计算关系表达式的值

           2)如果关系表达式的值为true就执行语句体1,如果关系表达式的值为false就执行语句体2

           3)继续执行后面的语句内容

     应用示例:

//需求:判断两个数a,b的大小,如果a大于b,则输出a,否则就输出b

int a = 10;
int b = 20;
if(a>b){
    System.out.println("a=" + a);
}else{
    System.out.println("b=" + b);
}

 2.switch语句

        格式:switch(条件表达式){

                   case 值1:语句体;break;

                   case 值2:语句体1;break;

                   ...

                  default:语句体n+1;[break]

                    }

      格式说明:

  • 表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以使String;
  • case:后面跟的是要和表达式进行比较的值;
  • break:表示中断、结束的意思,用来结束switch语句;
  • default:表示所有情况都不匹配的时候,句执行该处的内容,与if语句的else相似。

     应用示例

//需求:从键盘获取一个月份,使用switch语句判断该月份是什么季节,如果输入的月份格式不对,输出错误信息

Scanner sc = new Scanner(System.in);
System.out.print("请输入月份:");
int month = sc.nextInt();
switch (month){
    case 1:{
        System.out.println(month + "月份是冬季");
        break;
    }
    case 2:{
        System.out.println(month + "月份是冬季");
        break;
    }
    case 3:{
        System.out.println(month + "月份是春季");
        break;
    }
    case 4:{
        System.out.println(month + "月份是春季");
        break;
    }
    case 5:{
        System.out.println(month + "月份是春季");
        break;
    }
    case 6:{
        System.out.println(month + "月份是夏季");
        break;
    }
    case 7:{
        System.out.println(month + "月份是夏季");
        break;
    }
    case 8:{
        System.out.println(month + "月份是夏季");
        break;
    }
    case 9:{
        System.out.println(month + "月份是秋季");
        break;
    }
    case 10:{
        System.out.println(month + "月份是秋季");
        break;
    }
    case 11:{
        System.out.println(month + "月份是秋季");
        break;
    }
    case 12:{
        System.out.println(month + "月份是冬季");
        break;
    }
    default:{
        System.out.println("你输入的月份格式不对");
    }
}

注意事项:在switch语句中,如果case控制的语句体后面不写break,将会出现穿透现象,在不判断下一个case值的情况下,向下运行知道遇到break,或者整体switch语句结束。如下main代码所示:

switch (month){
    case 1:
    case 2:
    case 12:{
        System.out.println(month + "月是冬季");
        break;
    }
    case 3:
    case 4:
    case 5:{
        System.out.println(month + "月是春季");
        break;
    }
    case 6:
    case 7:
    case 8:{
        System.out.println(month + "月是夏季");
        break;
    }
    case 9:
    case 10:
    case 11:{
        System.out.println(month + "月是秋季");
        break;
    }
    default:{
        System.out.println("输入的月份不正确");
    }
}

本段代码与上一段代码的运行效果一模一样,假如输入的month值为1,则会执行case 1,然后执行case 2,再执行case 12,直到遇到了case 12中的break语句跳出switch;

       switch和if语句的区别:

  • 所有的switch语句都能改写成if语句,但不是所有的if语句不一定能改写成switch语句;
  • 如果只有几个限定的几个取值,用switch语句结构比较清晰;
  • 等值判断的时候用swi,范围判断的时候用if。

 

  • 循环结构

特征:

    重复做同样的事情,具有明确的开始和结束条件

组成:

    初始化语句:用于表示循环开启的起始状态,简单说就是循环开始的时候什么样

    条件判断语句:用于表示玄幻反复执行的条件,简单说就是判断循环是否能一直执行下去

    循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情

    条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去

循环结构对应的语法:

    初始化语句:这里可以使一条或者多条语句,这些语句可以完成一些初始化操作

    条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体,例如:a<3

    循环体语句:这里可以使任意语句,这些语句将反复执行

    小件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果,常见i++,i--这样的操作

 

      1.for循环结构

格式:

   for(初始化语句条件判断语句条件控制语句){

          循环体语句;

   }

执行流程:

(1) 执行初始化语句

(2) 执行条件判断语句,看其结果是true还是false,如果是false,循环结束;如果是true,继续执行

(3) 执行循环体语句

(4) 执行条件控制语句

(5) 回到(2)继续执行

for循环语句执行的流程图:

应用示例:

/*
求出所有的水仙花数,水仙花数:一个三位数,它的各个位上的三次方的和刚好等于这个数,例如:153 = 1*1*1+5*5*5+3*3*3
 */
for (int num = 100; num < 1000; num++) {
    int ge = num % 10; //个位
    int shi = num / 10 % 10; //十位
    int bai = num / 100 % 10; //百位
    if(ge*ge*ge + shi*shi*shi + bai*bai*bai == num){
          System.out.print(num + "  ");
     }
}

2.while循环结构

              基本格式:

               while(条件判断语句){

                       循环体语句;

               }

               

              完整格式:

               初始化条件语句;

               while(条件判断语句){

                       循环体语句;

                       条件控制语句;

               }

               执行流程:        

    (1) 执行初始化语句

     (2) 执行条件判断语句,看其结果是true还是false,如果是false,循环结束;如果是true,继续执行

     (3) 执行循环体语句

    (4) 执行条件控制语句

     (5) 回到(2)继续执行

   while循环语句执行的流程图:

   

应用示例:

/*
求出所有的水仙花数,水仙花数:一个三位数,它的各个位上的三次方的和刚好等于这个数,例如:153 = 1*1*1+5*5*5+3*3*3
 */
int num = 100;
while(num<1000) {
    int ge = num % 10; //个位
    int shi = num / 10 % 10; //十位
    int bai = num / 100 % 10; //百位
    if(ge*ge*ge + shi*shi*shi + bai*bai*bai == num){
          System.out.print(num + "  ");
    }
    num++;
}

3.dowhile循环结构

  基本格式:

    do{

           循环体语句;

    }while(条件判断语句);

  完整格式:

       初始化语句;   

       do{

             循环体语句;

             条件控制语句;

        }while(条件判断语句);      

              执行流程:        

    (1) 执行初始化语句

     (2) 执行循环体语句

     (3) 执行条件控制语句

     (4)   执行条件判断语句,看其结果是true还是false,如果是false,循环结束;如果是true,继续执行

     (5) 回到(2)继续执行

   while循环语句执行的流程图:

   应用示例:

/*求1-100整数的和 */

int num = 1;
int sum = 0;
do{
    sum += num;
    num++;
}while(num<=100);
System.out.println("sum=" + sum);

三种循环的区别:

      1. for循环和while训话先判断条件是否成立,然后决定是否执行循环体(先判断后执行)

      2. do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

for和while的区别:

      条件控制语句控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问

       条件控制语句所控制的自增变量,对于while循环来书不归属其语法结构中,在while循环结构后,该变量还可以继续访问

 死循环格式: for(;;){}、while(true){}、do{}while(true);

 在命令提示符窗口中可以使用Ctrl+C结束死循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值