zoukankan      html  css  js  c++  java
  • Java基础语法02-流程控制-if-switch-for-while

    流程控制语句

    顺序结构

    任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下逐行地执行,中间没有任何判断和跳转。

    分支结构

    if(条件表达式){
     语句体;

    执行流程

    • 首先判断条件表达式看其结果是true还是false

    • 如果是true就执行语句体

    • 如果是false就不执行语句体体

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

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

    if..else嵌套

    在if的语句块中,或者是在else语句块中, 又包含了另外一个条件判断(可以是单分支、双分支、多分支)

    执行的特点:

    (1)如果是嵌套在if语句块中的 只有当外部的if条件满足,才会去判断内部的条件

    (2)如果是嵌套在else语句块中的 只有当外部的if条件不满足,进入else后,才会去判断内部的条件

    if()

    else   //当条执行语句只有一句的时候我们可以省略花括号

    switch选择结构

    switch(表达式){
      case 常量值1:
        语句块1;
        【break;】
      case 常量值2:
        语句块2;
        【break;】
      。。。
      【default:
        语句块n+1;
      【break;】
    }

    (1)入口

    ①当switch(表达式)的值与case后面的某个常量值匹配,就从这个case进入;

    ②当switch(表达式)的值与case后面的所有常量值都不匹配,寻找default分支进入;不管default在哪里

    (2)一旦从“入口”进入switch,就会顺序往下执行,直到遇到“出口”,即可能发生贯穿

    (3)出口

    ①自然出口:遇到了switch的结束}

    ②中断出口:遇到了break等

    注意:

    (1)switch(表达式)的值的类型,只能是:4种基本数据类型(byte,short,int,char),两种引用数据类型(JDK1.5之后枚举、JDK1.7之后String)

    (2)case后面必须是常量值,而且不能重复

    循环语句

    不论哪一种编程语言,都会提供两种基本的流程控制结构:分支结构和循环结构。其中分支结构用于实现根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复执行某段代码。

    for循环

    循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要通过修改循环变量使得循环判断条件为false,从而结束循环,否则循环将一直执行下去,形成死循环。

    for(初始化语句①; 循环条件语句②; 迭代语句④){
      循环体语句③
    }
    for(;;){
      循环体语句块;  //如果循环体中没有跳出循环体的语句,那么就是死循环
    }

    (1)for(;;)中的两个;是不能多也不能少

    (2)循环条件必须是boolean类型

    (3)如果循环条件语句②省略的话,就默认为循环条件成立

    执行流程:

    • 第一步:执行初始化语句①,完成循环变量的初始化;

    • 第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;

      • 如果是true,执行第三步;

      • 如果是false,循环语句中止,循环不再执行。

    • 第三步:执行循环体语句③

    • 第四步:执行迭代语句④,针对循环变量重新赋值

    • 第五步:根据循环变量的新值,重新从第二步开始再执行一遍

    while循环

    while (循环条件语句①) {
      循环体语句②;
    }
    while(true){
      循环体语句;    //如果此时循环体中没有跳出循环的语句,也是死循环
    }

    while(循环条件)中循环条件必须是boolean类型

    执行流程:

    • 第一步:执行循环条件语句①,看循环条件语句的值是true,还是false;

      • 如果是true,执行第二步;

      • 如果是false,循环语句中止,循环不再执行。

    • 第二步:执行循环体语句②;

    • 第三步:循环体语句执行完后,重新从第一步开始再执行一遍

    2、while循环语句扩展格式:

    初始化语句①;
    while (循环条件语句②) {
      循环体语句③;
      迭代语句④;
    }

    执行流程:

    • 第一步:执行初始化语句①,完成循环变量的初始化;

    • 第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;

      • 如果是true,执行第三步;

      • 如果是false,循环语句中止,循环不再执行。

    • 第三步:执行循环体语句③

    • 第四步:执行迭代语句④,针对循环变量重新赋值

    • 第五步:根据循环变量的新值,重新从第二步开始再执行一遍

    do...while循环

    do {
      循环体语句①;
    } while (循环条件语句②);

    (1)while(循环条件)中循环条件必须是boolean类型

    (2)do{}while();最后有一个分号

    (3)do...while结构的循环体语句是至少会执行一次,这个和for和while是不一样的

    执行流程:

    • 第一步:执行循环体语句①;

    • 第二步:执行循环条件语句②,看循环条件语句的值是true,还是false;

      • 如果是true,执行第三步;

      • 如果是false,循环语句终止,循环不再执行。

    • 第三步:循环条件语句执行完后,重新从第一步开始再执行一遍

    2、do...while循环语句扩展格式:

    初始化语句①
    do {
      循环体语句②;
      迭代语句③;
    } while (循环条件语句④);

    执行流程:

    • 第一步:执行初始化语句①,完成循环变量的初始化;

    • 第二步:执行循环体语句②;

    • 第三步:执行迭代语句③,针对循环变量重新赋值;

    • 第四步:执行循环条件语句④,看循环条件语句的值是true,还是false;

      • 如果是true,根据循环变量的新值,重新从第二步开始再执行一遍;

      • 如果是false,循环语句中止,循环不再执行。

    循环语句的区别

    • 从循环次数角度分析

      • do...while循环至少执行一次循环体语句

      • for和while循环先循环条件语句是否成立,然后决定是否执行循环体,至少执行零次循环体语句

    • 从循环变量的生命周期角度分析

      • for循环的循环变量在for()中声明的,在循环语句结束后,不可以被访问;

      • while和do...while循环的循环变量因为在外面声明的,所以while和do...while结束后可以被继续使用的;

    • 如何选择

      • 遍历有明显的循环次数(范围)的需求,选择for循环

      • 遍历没有明显的循环次数(范围)的需求,循环while循环

      • 如果循环体语句块至少执行一次,可以考虑使用do...while循环

      • 本质上:三种循环之间是可以互相转换的,都能实现循环的功能

    • 三种循环结构都具有四要素:

      • (1)循环变量的初始化表达式

      • (2)循环条件

      • (3)循环变量的修改的迭代表达式

      • (4)循环体语句块

    控制语句 break

    使用场景:终止switch或者当前循环,离开使用场景的存在是没有意义的

    continue

    使用场景:结束本次循环,继续下一次的循环

    嵌套循环

    所谓嵌套循环,是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数*内循环次数。当然可以是三种循环任意互相嵌套。

    for(初始化语句①; 循环条件语句②; 迭代语句⑦) {
      for(初始化语句③; 循环条件语句④; 迭代语句⑥) {
        循环体语句⑤;
      }
    }

    for(;;)    //当语句块只有一句或其if,for语句时,{}可以省略,也称复合语句。但是不推荐

      语句块;

      

  • 相关阅读:
    G450 Ubuntu14 无线网卡解决
    USB设备不能用。提示Windows 无法启动这个硬件设备。 (代码 19)
    帮你选处理器:CPU T9500-p9500-T9400-T9300-p8700对比分析!
    全球各大运营商黑莓ROM官网下载链接汇总
    查看80端口被占用的方法(IIS、apmserv、system)
    Windows 2003 服务器安全设置-批处理 (附参考链接)
    解决Windows时间同步失败问题!系统时间同步设置!
    WinHTTP Web Proxy Auto-Discovery Service
    关于“未使用GUID分区表”无法安装的解决方案
    DataGridView使用技巧六:冻结列或行
  • 原文地址:https://www.cnblogs.com/Open-ing/p/11857488.html
Copyright © 2011-2022 走看看