zoukankan      html  css  js  c++  java
  • java中的流程控制语句总结

    java中的流程控制语句总结

     

    程序的结构分类:
      顺序结构:按照写代码的顺序 一次执行
      选择结构:根据条件的不同有选择的执行不同的代码
      循环结构:在一定条件下 反复执行某一片代码

    选择结构:

      也叫分支结构 根据条件的不同,有选择的执行某一片代码 ,Java提供了两种  if结构    switch结构 

     if分为三种格式 :

    if的第一种格式

      if(条件){
        语句块
      }

    执行流程:
    先判断条件, 如果为真 则语句块执行, 否则 语句块不执行

    代码演示:

    复制代码
     1 public static void main(String[] args) {
     2         System.out.println("开始");
     3         // 定义两个变量
     4         int a = 10;
     5         int b = 20;
     6 
     7         if (a == b) {
     8             System.out.println("a等于b");
     9         }
    10 
    11         int c = 10;
    12         if (a == c) {
    13             System.out.println("a等于c");
    14         }
    15 
    16         System.out.println("结束");
    17     }
    复制代码

    if的第二种格式:

    if(条件){

      语句块 1

    }else{

      语句块2

    }

    执行流程:
    先判断条件的真假, 如果为真 则只执行语句块1, 否则, 只执行语句块2
    代码演示:

    复制代码
     1 public static void main(String[] args) {
     2         System.out.println("开始");
     3         // 判断给定的数据是奇数还是偶数
     4         // 定义变量
     5         int a = 100;
     6         // 给a重新赋值
     7         a = 99;
     8 
     9         if (a % 2 == 0) {
    10             System.out.println("a是偶数");
    11         } else {
    12             System.out.println("a是奇数");
    13         }
    14 
    15         System.out.println("结束");
    16     }
    复制代码

    if语句的第三种格式:

    if(条件1){

      语句块1
    }else if(条件2){

      语句块2
    }else if(条件3){
      语句块3
    }
    ...
    else if(条件n){

      语句块n
    }else{

      语句块n+1
    }

    执行流程:
    先判断条件1 ,如果为真 则执行语句块1,执行完毕,跳出整个if结构执行if下面的语句, 否则判断条件2,
    如果条件2为真,则执行语句块2,执行完毕跳出
    整个if结构执行if下面的语句, 如果条件2也为假,则判断条件3 ,如果为真... 如果判断到条件n都为假,
    则执行else中的语句块n+1
    代码演示:
    x和y的关系满足如下:
    x>=3 y = 2x + 1;
    -1<=x<3 y = 2x;
    x<=-1 y = 2x – 1;
    根据给定的x的值,计算出y的值并输出。

    复制代码
     1 public static void main(String[] args) {
     2 
     3         int x = 5;
     4         int y;
     5         if (x >= 3) {
     6             y = 2 * x + 1;
     7         } else if (x >= -1 && x < 3) {
     8             y = 2 * x;
     9         } else  {
    10             y = 2 * x - 1;
    11         }
    12 
    13         System.out.println("y的值是:"+y);
    14     }
    复制代码

    选择结构switch

    语法结构

    switch(表达式){
    case 目标值1:
        语句块1
        break;
    case 目标值2:
        语句块2
        break;
    case 目标值3:
        语句块3
        break;
    ...
    case 目标值n:
        语句块n+1
        break;
    default:
        语句块n+1
        break;

    }

    执行流程:
    先计算表达式的结果 A ,使用A顺次的与对应的目标值进行比较,一旦发现有相等的目标值, 就停止比较,
    执行对应的语句块, 再执行break跳出整个switch结构, 如果从上往下比较都没有目标值与A相等则执行
    语句块n+1 结束switch

    要求:
    表达式: 表达式的结果,在JDK1.1~1.4时代 表达式的结果的数据类型 只能是 char byte short int
    在JDK1.5~1.6时代 表达式的结果的数据类型 只能是 char byte short int enum(枚举)
    在JDK1.7+时代 表达式的结果的数据类型 只能是 char byte short int enum(枚举) ,String(字符串)

    目标值:
    目标值的数据类型 与表达式结果的数据类型要匹配
    目标值 不能重复
    代码演示:
    根据键盘录入的数值1、2、3...7输出对应的星期一、星期二、星期三...星期日

    复制代码
     1 public static void main(String[] args) {
     2         //创建键盘录入对象
     3         Scanner sc = new Scanner(System.in);
     4         
     5         //接收数据
     6         System.out.println("请输入一个数字(1-7):");
     7         int weekday = sc.nextInt();
     8         
     9         //switch语句实现选择
    10         switch(weekday) {
    11         case 1:
    12             System.out.println("星期一");
    13             break;
    14         case 2:
    15             System.out.println("星期二");
    16             break;
    17         case 3:
    18             System.out.println("星期三");
    19             break;
    20         case 4:
    21             System.out.println("星期四");
    22             break;
    23         case 5:
    24             System.out.println("星期五");
    25             break;
    26         case 6:
    27             System.out.println("星期六");
    28             break;
    29         case 7:
    30             System.out.println("星期日");
    31             break;
    32         default:
    33             System.out.println("你输入的数字有误");
    34             break;
    35         }    
    36     }
    复制代码

    循环结构:

    同一件事反复做 , 反复执行同一片代码
    循环的构成:
      初始化语句
      循环出口(条件)
      循环体
      循环增量

    有三种 循环结构:
    for 循环   while 循环   do...while循环
    for循环:
    语法格式:
    for(初始化语句;条件;步进表达式){

      循环体
    }

    执行流程:
    第一步: 初始化语句
    第二步: 判断条件, 如果条件为真 则进入第三步 ,条件为假则进入第五步
    第三步: 执行循环体
    第四步: 执行步进表达式 进入第二步
    第五步: 结束循环

    代码演示:
    统计“水仙花数”共有多少个
    所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。

    复制代码
     1 public static void main(String[] args) {
     2         //1.定义一个统计变量,初始值为0
     3         int count = 0;
     4         
     5         //2.使用for循环获取所有的三位数
     6         for(int x=100; x<1000; x++) {
     7             //3.拆分三位数的百位,十位,个位
     8             int ge = x%10;
     9             int shi = x/10%10;
    10             int bai = x/10/10%10;
    11             
    12             //4.利用公式判断这个三位数是否为水仙花数,如果是,统计变量++
    13             if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
    14                 count++;
    15             }
    16         }
    17         
    18         //5.循环结束之后,打印统计结果
    19         System.out.println("水仙花数共有:"+count+"个");
    20     }
    复制代码

    while 循环:

    语法结构:

    初始化语句
    while(条件){
      循环体
      步进语句
    }

    执行流程:
    第一步: 初始化语句
    第二步: 判断条件, 如果条件为真, 则进入第三步,如果条件为假, 则进入第五步
    第三步: 执行循环体
    第四步: 执行步进语句, 再进入第二步
    第五步: 结束循环

    do ... while循环
    语法格式:

    初始化语句
    do{
      循环体
      步进语句

    }while(条件)

    执行流程:
    第一步: 初始化语句
    第二步: 执行循环体
    第三步: 执行步进语句
    第四步: 判断条件,如果条件为真,进入第二步, 否则进入第五步
    第五步: 结束循环

    三种循环的区别:
    虽然可以完成同样的功能,但是还是有小区别:
    do…while循环至少会执行一次循环体。
    for循环和while循环只有在条件成立的时候才会去执行循环体
    for循环语句和while循环语句的小区别:
    使用区别:控制条件语句所控制的那个变量,在for循环结束后,
    就不能再被访问到了,而while循环结束还可以继续使用,如果你想继续使用,
    就用while,否则推荐使用for。原因是for循环结束,该变量就从内存中消失,
    能够提高内存的使用效率。
    循环使用推荐for -- while -- do..while

    跳转语句可以控制循环的执行:
    有两种
    break : 在循环中使用的时候 表示结束当前循环
    在switch语句中使用 表示跳出当前的switch结构

    continue: 在循环中使用, 表示结束本次循环 进行下一次循环
    跳转语句 脱离循环没有意义

  • 相关阅读:
    QQ恢复解散后的群聊或删除后的好友的方法
    微软双屏手机Surface Duo曝新料
    利用Travis CI+GitHub实现持续集成和自动部署
    利用echarts展示旅行足迹
    03_K近邻算法
    02_感知机算法
    《面试官之你说我听》:简明的图解Redis RDB持久化、AOF持久化
    【绝对有收获】看看?必须告诉你为什么要使用MQ消息中间件(图解版)
    推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)
    利用window.performance.timing进行性能分析
  • 原文地址:https://www.cnblogs.com/wuqiance/p/11529582.html
Copyright © 2011-2022 走看看